首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JSVC守护与Maven One-Jar插件打包的Java应用程序

使用JSVC守护与Maven One-Jar插件打包的Java应用程序
EN

Stack Overflow用户
提问于 2012-10-13 02:02:46
回答 2查看 1.3K关注 0票数 2

以下是问题所在:

我已经使用Maven plugin One-Jar将我的Java应用程序打包到一个jar中。

现在,我想使用JSVC将应用程序作为Unix守护程序运行,即Apache Commons守护程序。

我使用JSVC的方法如下(适用于使用Maven组装插件制作的Jars等):

代码语言:javascript
复制
jsvc -user $USER -home $HOME -pidfile $PID_PATH -cp $PATH_TO_ONE_JAR my.package.MyClass

错误是这样的:

代码语言:javascript
复制
jsvc.exec error: Cannot find daemon loader org/apache/commons/daemon/support/DaemonLoader
jsvc.exec error: Service exit with a return value of 1

既然One-Jar使用了一个自定义的类加载器,有人知道是否可以同时使用JSVC和One-Jar吗?当我运行java jar.jar my- -jar -jar.jar时,jar运行得很好。

可以做些什么呢?

感谢你的见解!

EN

回答 2

Stack Overflow用户

发布于 2013-03-16 03:38:53

我必须从jsvc向classpath选项添加所有jars依赖项。jsvc似乎没有使用另一个jar中的jar

票数 0
EN

Stack Overflow用户

发布于 2015-05-11 15:50:31

如果您使用(文档不多的) Maven Shade Plugin而不是One-jar (它们可以实现类似的结果),那么它应该可以解决您的问题。它解压依赖的Jar并将类文件直接存储在fat jar中(而不是将jar存储在jar中)。我已经使用它创建了一个在JSVC下运行的可执行jar,并取得了一些成功。

当然,事情很少像听起来那么简单。使用Shade插件,当依赖树中存在冲突时,您可能需要对relocate classes做一些工作,或者使用resource transformers来处理非Java资源文件。但希望不是这样。

(当然,Mkyong.com也有a guide on this)

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

https://stackoverflow.com/questions/12864671

复制
相关文章

相似问题

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