Java JSVC无法注册本机方法
我正在尝试创建一个服务,该服务将在用Java编写的Ubuntu Linux中运行。我的可执行Jar文件是一个大而胖的Jar文件,其中包含所有的依赖项。当我尝试使用JSVC运行它时,出现以下错误Java JSVC无法注册本机方法,java,ubuntu,service,daemon,jsvc,Java,Ubuntu,Service,Daemon,Jsvc,我正在尝试创建一个服务,该服务将在用Java编写的Ubuntu Linux中运行。我的可执行Jar文件是一个大而胖的Jar文件,其中包含所有的依赖项。当我尝试使用JSVC运行它时,出现以下错误 Java VM created successfully Class org/apache/commons/daemon/support/DaemonLoader found Cannot register native methods java_init failed Service exit with
Java VM created successfully
Class org/apache/commons/daemon/support/DaemonLoader found
Cannot register native methods
java_init failed
Service exit with a return value of 1
让我头疼的是“无法注册本机方法”行。这意味着什么?我如何修复它
我正在使用EclipseIDE用Java编写我的应用程序,我使用AptGet(1.0.10-3)安装了最新版本的JSVC。我的commons.daemon库版本是1.0.1。我的启动脚本如下
#!/bin/sh
# Setup variables
EXEC=jsvc
JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64
CLASS_PATH="/usr/hadoop-1.1.1/lib/commons-daemon-1.0.1.jar":"/usr/devel/Hadoop_LCS/"
CLASS=com.foo.hadoop.lcs.Program
USER=hduser
PID=/tmp/lcs_process.pid
LOG_OUT=/tmp/lcs_log.out
LOG_ERR=/tmp/lcs_log.err
do_exec()
{
$EXEC -home "$JAVA_HOME" -cp $CLASS_PATH -user $USER -debug -outfile $LOG_OUT -errfile $LOG_ERR -pidfile $PID $1 $CLASS
}
case "$1" in
start)
do_exec
;;
stop)
do_exec "-stop"
;;
restart)
if [ -f "$PID" ]; then
do_exec "-stop"
do_exec
else
echo "Service not running, will do nothing"
exit 1
fi
;;
*)
echo "usage: daemon {start|stop|restart}" >&2
exit 3
;;
esac
我明白了。我刚刚升级了ApacheCommons.daemon库的版本,这就成功了。我得了1.0.15分