2013-06-11 3 views
0

Java로 작성된 Ubuntu Linux에서 실행될 서비스를 만들려고합니다. 내 실행 가능한 Jar 파일은 내부에 패키지 된 모든 종속성을 가진 큰 뚱뚱한 Jar 파일이다. JSVC를 사용하여 실행하려고하면 다음 오류가 발생합니다.JSVC가 네이티브 메소드를 등록 할 수 없음

나를 괴롭히는 것은 "기본 메소드를 등록 할 수 없습니다"라인입니다. 이것이 의미하는 바는 무엇이며 어떻게 수정합니까?

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 

답변

1

알아 들었어. 방금 아파치 commons.daemon 라이브러리의 버전을 업그레이드했고 그 트릭을했습니다. 나는 1.0.15를 얻었다.

관련 문제