我的“SomeJarA.jar”具有以下结构:
SomeJarA
|
|--lib/SomeJarB.jar
|--com/.../SomeClass.class
我试图使用以下方法执行“SomeClass.java”中的“SomeJarB.jar”:
Runtime.getRuntime().exec("java -jar SomeJarB.jar");
这可能吗?
答案 0 :(得分:0)
据我所知,如果有办法实现这一目标,那将是一个棘手且极不受支持的安排。我会四处寻找一些支持文档,但我倾向于说#34;不。"
这相关的link可能有所帮助。
编辑:找到我想要的参考资料。它是here。具体来说,有一个说明," Class-Path标头指向本地网络上的类或JAR文件, 不是JAR文件中的JAR文件 或可通过互联网协议访问的课程。"答案 1 :(得分:0)
这来自用户@Tezar和问题Classpath including JAR within a JAR
You can use "Class-Path" in your manifest file.
For example:
Create manifest file MANIFEST.MF
Manifest-Version: 1.0
Created-By: Bundle
Class-Path: ./custom_lib.jar
Main-Class: YourMainClass
Compile all your classes and run
jar cfm Testing.jar MANIFEST.MF *.class custom_lib.jar
c stands for create archive f indicates that you want to specify file v
is for verbose input m means that we will pass custom manifest file
Be sure that you included lib in jar package. You should be able to run
jar in the normal way.
based on: http://www.ibm.com/developerworks/library/j-5things6/
请参阅链接的问题。对于罐子里的罐子而言,它似乎是最安全的方法,并避免使用第三方类装载机。如果您觉得赞成,请转到Tezar的回答并提交该条目,而不是此条目,因为这只是一个副本。