从lib目录执行JAR

时间:2015-02-18 20:39:55

标签: java maven jar

我的“SomeJarA.jar”具有以下结构:

SomeJarA
|
|--lib/SomeJarB.jar
|--com/.../SomeClass.class

我试图使用以下方法执行“SomeClass.java”中的“SomeJarB.jar”:

Runtime.getRuntime().exec("java -jar SomeJarB.jar");

这可能吗?

2 个答案:

答案 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的回答并提交该条目,而不是此条目,因为这只是一个副本。