我已经编译并执行了使用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文件(通过命令提示符创建)时会出现问题。
老实说,我已经花了太多时间和太多的事情来解决这个问题,但却失败了,所以如果有人能帮助我的话,那真的很棒。
答案 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