Manifest.mf:引用jar文件中的Main-class

时间:2014-02-13 17:45:40

标签: java jar manifest executable-jar

我正在制作一个可运行的jar,其主要类是eclipse的JarRsrcLoader。

这是我的包结构

org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

我的清单

Manifest-Version: 1.0
Rsrc-Class-Path: ./selenium-server-standalone-2.39.0.jar
Class-Path: . 
Rsrc-Main-Class: test.Main
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

我的jar中的目录结构:

enter image description here

当我尝试使用以下命令行从命令行运行jar时

java -jar output.jar

我明白了:

Error: Could not find or load main class org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

谁能看到我哪里出错了?当我将org文件夹放在与output.jar相同的目录中时,它运行正常。我希望从jar中找到它,以便没有外部依赖。感谢

更新

类文件在jar中:

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试使用其他几种Uber jar工具:

答案 1 :(得分:0)

虽然长时间回答这个问题,但这对我有用

尝试在工作区中创建一个包,如com.eclipse.jdt.internal.jarinjarloader,并放置所有文件JarRsrcLoader.java,RsrcURLConnection.java,RsrcURLStreamHandler.java和RsrcURLStreamHandlerFactory.java,可以从谷歌下载。 然后如图所示编写了Manifest

 Build-Jdk: 1.7.0_55
    Class-Path: .
    Rsrc-Main-Class: com.abc.Master
    Main-Class: com.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
    Rsrc-Class-Path: ./ lib/xyz.jar