Java 从lib目录执行JAR

Java 从lib目录执行JAR,java,maven,jar,Java,Maven,Jar,我的“SomeJarA.jar”具有以下结构: SomeJarA | |--lib/SomeJarB.jar |--com/.../SomeClass.class 我试图使用以下命令执行“SomeClass.java”中的“SomeJarB.jar”: 这可能吗 据我所知,如果有办法做到这一点,这将是一个棘手且极不受支持的安排。我会四处寻找一些支持文档,但我倾向于说“不” 不过,这可能会有所帮助 编辑:找到我想要的参考资料。是的。特别是,有一个注释说,“类路径头指向本地网络上的类或JAR文件,

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

SomeJarA
|
|--lib/SomeJarB.jar
|--com/.../SomeClass.class
我试图使用以下命令执行“SomeClass.java”中的“SomeJarB.jar”:


这可能吗

据我所知,如果有办法做到这一点,这将是一个棘手且极不受支持的安排。我会四处寻找一些支持文档,但我倾向于说“不”

不过,这可能会有所帮助


编辑:找到我想要的参考资料。是的。特别是,有一个注释说,“类路径头指向本地网络上的类或JAR文件,而不是JAR文件中的JAR文件或通过internet协议访问的类。”

这是来自user@Tezar和Question

参见链接问题。对于jar中的jar,它似乎是最明智的方法,避免了第三方类装入器。如果你想提高投票率,请转到Tezar的答案并提高该条目的投票率,而不是这一条,因为这只是一份副本

Runtime.getRuntime().exec("java -jar SomeJarB.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/