简单地说,我有一个不同的错误,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.
先谢谢亲切的人。
答案 0 :(得分:1)
您的Start类是否包含使用资源内容(.properties文件或类似文件)初始化的任何静态字段?
如果是这种情况,则可能是问题所在。您在步骤3)中使用的命令仅将.class文件打包到JAR中,但忽略其余部分:
...\jar.exe cvfm ERSR.jar manifest.txt *.class
修改它以包含所有内容:
...\jar.exe cvfm ERSR.jar manifest.txt *