Den*_* II 5 java daemon jsvc apache-commons-daemon
我正在尝试使用jsvc将Java应用程序作为Linux服务运行.我找到了如何用jsvc将java程序转换为守护进程?它能够让我大部分时间,但我仍然在努力让类路径得到解决.
我向stderr收到以下错误:
19/04/2013 10:43:18 12233 jsvc.exec错误:找不到守护进程加载器org/apache/commons/daemon/support/DaemonLoader
19/04/2013 10:43:18 12231 jsvc.exec错误:服务退出,返回值为1
似乎运行时无法找到commons-daemon.jar.
我的应用程序是结构化的,以便应用程序本身在一个jar文件中,具有依赖项,包括lib目录中的commons-daemon.
这是我的daemon-script.sh的相关部分:
LIB_DIR = $(PWD)/ lib目录/*
CLASS_PATH = $(PWD)/myapp.jar
$ EXEC -home $ JAVA_EXEC -cp $ CLASS_PATH:$ LIB_DIR -outfile $ LOG_OUT -errfile $ LOG_ERR -pidfile $ PID $ 1 $ CLASS
我尝试了很多变化:相对路径,特别是引用lib/commons-daemon.jar,没有通配符等.有没有人知道如何正常工作?
此外,myapp.jar是一个自执行jar (主要用于测试目的,是的,我仍然需要它作为服务运行),因此manifest.mf包含Class-Path和Main-Class属性.有没有办法让jsvc识别清单?
您可以在 JSVC 中使用多个 jar,在它们之间使用: 。
对于您的具体问题,解决方案是将 CLASS_PATH 变量更改为:
CLASS_PATH=$(pwd)/myapp.jar:$(pwd)/lib/commons-daemon.jar:$(pwd)/lib/other-jars
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用通配符将所有 jar 包含在目录中,如下所示:
CLASS_PATH=$(pwd)/myapp.jar:$(pwd)/lib/*.jar
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
2192 次 |
| 最近记录: |