主类在JAR中,不能被Jar.exe看到

时间:2018-01-22 13:16:13

标签: java jar

简单地说,我有一个不同的错误,Eclipse不允许我导出最新版本的JAR。所以,我试着在命令提示符下尝试。

我使用的是JDK 1.8.0。

1)首先,我从各个文件夹中提取了所有类文件。 2)我创建了一个manifest.txt,其中包含以下内容(包括oracle教程中描述的最后一个回车符)

Main-Class: Start

3)我使用以下命令创建可运行的jar,尽可能详细以确保正确的版本控制:

C:\correctDirectory\"C:\Program Files\Java\jdk1.8.0\bin\jar.exe" cvfm ERSR.jar manifest.txt *.class

4)运行正常。然后我检查JAR以确保它包含包含main方法的Start.class文件:

C:\correctDirectory\"C:\Program Files\Java\jdk1.8.0\bin\jar.exe" tf ERSR.jar

该输出(减少为有用信息):

META-INF/
META-INF/MANIFEST.MF
Start.class

5)然后我使用以下命令运行JAR:

C:\correctDirectory\"C:\Program Files\Java\jdk1.8.0\bin\java" -jar ERSR.jar

我收到错误:

Error: Could not find or load main class Start.

先谢谢亲切的人。

1 个答案:

答案 0 :(得分:1)

您的Start类是否包含使用资源内容(.properties文件或类似文件)初始化的任何静态字段?

如果是这种情况,则可能是问题所在。您在步骤3)中使用的命令仅将.class文件打包到JAR中,但忽略其余部分:

...\jar.exe cvfm ERSR.jar manifest.txt *.class

修改它以包含所有内容:

...\jar.exe cvfm ERSR.jar manifest.txt *