Jar执行错误:无法找到或加载主类xxx

时间:2015-06-25 04:23:06

标签: java jar apache-poi

我已经编译并执行了使用apache-poi外部库文件的java代码,代码从excel电子表格读取字符串并显示它但是当我尝试制作可执行jar文件并打开它时,命令提示符给出了message- Could not find or load main class。(双击jar文件不会打开jar文件)

通过将换行符放在最后并按正确顺序添加标题(Oracle文档),我已经注意编写MANIFEST.MF文件,其内容为 -

Manifest-Version: 1.0

Class-Path: . C:\poi-3.12\poi-3.12-20150511.jar C:\poi-3.12\poi-ooxml-
 3.12-20150511.jar C:\poi-3.12\poi-ooxml-schemas-3.12-20150511.jar C:\
 poi-3.12\ooxml-lib\xmlbeans-2.6.0.jar 

Created-By: 1.8.0_45 (Oracle Corporation)

Main-Class: testfrpn

其中testfrpn是包含main()的类(入口点)。尽管stackoverflow(以及其他地方)上存在问题的解决方案,但没有一个适用于我,最常见的解决方案是以正确的顺序执行jar -cvfm xxx.jar xxx.txt

应该注意代码执行得很好( java xxx ),当我执行.jar文件(通过命令提示符创建)时会出现问题。

老实说,我已经花了太多时间和太多的事情来解决这个问题,但却失败了,所以如果有人能帮助我的话,那真的很棒。

1 个答案:

答案 0 :(得分:1)

如果它是可执行jar,MANIFEST.MF文件应该是这样的:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: JerryZhang
Build-Jdk: 1.6.0_25
Main-Class: com.company.department.SampleClassName
Class-Path: lib/poi-3.10-FINAL.jar lib/commons-codec-1.5.jar lib/poi-o
 oxml-3.8-beta4.jar lib/poi-ooxml-schemas-3.8-beta4.jar lib/xmlbeans-2
 .3.0.jar lib/stax-api-1.0.1.jar lib/dom4j-1.6.1.jar lib/xml-apis-1.0.
 b2.jar lib/sshj-0.8.1.jar lib/slf4j-api-1.6.1.jar lib/commons-cli-1.2
 .jar lib/logback-classic-1.0.13.jar lib/logback-core-1.0.13.jar

重要的一点是:

Main-Class: com.company.department.SampleClassName

该值应包括包名和类名,它告诉JVM哪个类是主类。

使用以下命令执行xxxx.jar:

java -jar xxxx.jar