0

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 a return value of 1

私を殺しているのは、「ネイティブメソッドを登録できません」という行です。これは何を意味し、どうすれば修正できますか?

Eclipse IDE を使用して Java でアプリを作成しています。apt-get (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
4

1 に答える 1