首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从命令行使用jarjar?

如何从命令行使用jarjar?
EN

Stack Overflow用户
提问于 2009-09-23 12:47:34
回答 3查看 6.3K关注 0票数 5

我在命令行中使用jarjar将简单的Scala程序与scala运行时库结合在一起时遇到了问题。

jarjar正确地检测到依赖关系:

代码语言:javascript
复制
$ java -jar ~/Desktop/saug/jarjar-1.0.jar find jar BCT.jar scala-library.jar
/home/schani/Work/scala/bct/BCT.jar -> /home/schani/Work/scala/bct/scala-library.jar

然而,将它们组合在一起并不起作用:

代码语言:javascript
复制
$ CLASSPATH=./scala-library.jar java -jar ~/Desktop/saug/jarjar-1.0.jar process rules.jjl BCT.jar BCTS.jar

我得到的jar文件仍然依赖于scala-library.jar ary.jar。是否添加CLASSPATH变量没有区别。我的rules.jjl文件如下所示:

代码语言:javascript
复制
keep BCT

该怎么办呢?

EN

回答 3

Stack Overflow用户

发布于 2009-09-23 17:27:14

使用java "-jar“选项会忽略类路径。尝试使用类路径显式指定主类,并省略"-jar":

代码语言:javascript
复制
java -cp ~/Desktop/saug/jarjar-1.0.jar:./scala-library.jar com.tonicsystems.jarjar.Main process rules.jjl BCT.jar BCTS.jar
票数 1
EN

Stack Overflow用户

发布于 2009-09-28 14:41:07

尝试为scala.runtime.Nothing$类添加一个keep。在使用类似的产品(autojar;http://autojar.sourceforge.net/en_d/index.html)和Scala时,我发现这是必要的。

票数 0
EN

Stack Overflow用户

发布于 2009-10-21 02:15:34

jarjar不会将其他jar重新打包到您的jar中。它只重命名一个jar本身内部的依赖项。

使用这里概述的方法Clean way to combine multiple jars? Preferably using Ant将所有依赖jar重新压缩到您的jar中,然后运行jarjar以防止将来的依赖地狱。

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

https://stackoverflow.com/questions/1465768

复制
相关文章

相似问题

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