首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jsvc类路径中使用多个jars

在jsvc类路径中使用多个jars
EN

Stack Overflow用户
提问于 2013-04-19 15:13:40
回答 1查看 2.6K关注 0票数 5

我正在尝试使用jsvc将Java应用程序作为Linux服务运行。我找到了How to convert a java program to daemon with jsvc?,它可以让我大部分的路,但我仍然在努力使类路径弄清楚。

我得到了以下的错误到stderr:

19/04/201310:43:18 12233 org/apache/commons/daemon/support/DaemonLoader错误:找不到守护进程加载程序jsvc.exec 19/04/201310:43:18 12231 jsvc.exec错误:服务退出,返回值1

运行时似乎无法找到通用-daemon.jar。

我的应用程序的结构使得应用程序本身位于一个jar文件中,并具有依赖关系,包括lib目录中的commons。

  • daemon-script.sh
  • myapp.jar
  • lib/commons-daemon.jar
  • lib/其他-罐子

下面是我的守护进程-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包含了类路径和主类属性。有办法让jsvc识别清单吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-09 13:57:30

您可以在JSVC中使用多个jars,在它们之间使用。

对于您的特定问题,解决方案是将CLASS_PATH变量更改为:

代码语言:javascript
复制
CLASS_PATH=$(pwd)/myapp.jar:$(pwd)/lib/commons-daemon.jar:$(pwd)/lib/other-jars

或者,您可以使用如下通配符将所有jars包含在目录中:

代码语言:javascript
复制
CLASS_PATH=$(pwd)/myapp.jar:$(pwd)/lib/*.jar

希望这能有所帮助

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16107878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档