将Java入口点设置为另一个JAR内的JAR中的类

时间:2019-05-14 17:23:44

标签: java entry-point

我有一个与Jar一起打包的JAR,因此它内部包含多个依赖项(使用JAR URL表示法):

<one.jar>!/lib/<deps1.jar>
<one.jar>!/lib/<deps2.jar>
...

是否可以从main()中的类com.example.A运行deps2.jar

我尝试了java -cp one.jar!/lib/deps2.jar com.example.A,但这没用。

1 个答案:

答案 0 :(得分:1)

您可以在主.jar中的某个位置包含main(),以委托com.example.A.main()。这将使您只需要几行代码即可获得所需的行为...一个小的附加类定义文件。例如:

package foo.bar;

import com.example.A;

class MainEntryDelegate {
    public static void main(String... args) {
        com.example.A.main(args);
    }
}

因此,您的应用将可以通过显而易见的方式运行:

java -cp one.jar foo.bar.MainEntryDelegate

或者您是否正确设置了清单:

java -jar one.jar