我是java編程的新手,我創建了一個集成了selenium,apachepoi和java swing的程序。在編譯程序時,我能夠成功編譯並且程序運行正確;但是當我嘗試爲我的程序製作一個jar文件時,它顯示java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Row
錯誤。
java.lang.NoClassDefFoundError:org/apache/poi/ss/usermodel/Row運行時錯誤
下面是我的程序的文件夾結構
c:\users\userid\documents\java\crazyrunner
Java文件是名CrazyRunner.java
crazyrunner文件夾內
程序與名稱crazyrunner一個封裝內(該計劃的第一線與package crazyrunner
開始)
用於編譯的命令(不確定它是否相關)
javac -encoding UTF8 crazyrunner\CrazyRunner.java
編譯導致兩家母公司(JAVA)和兒童(crazyrunner)創建的.class文件夾
命令用來運行
java crazyrunner.CrazyRunner
(這只是正常工作)使用的命令
產生jar
jar cvfm CrazyRunner.jar manifest.mf *.class crazyrunner\*.class
jar命令的結果是成功的,並且crazyrunner和外部craz中的所有類文件yrunner(父文件夾的Java'內)被添加到罐(CrazyRunner.jar
)
MANIFEST.MF文件具有數據如下
Manifest-Version: 1.0
Created-By: Eric Stanley
Main-Class: crazyrunner.CrazyRunner
Class-Path: "C:\poi-3.10-beta2\poi-3.10-beta2-20130904.jar"
"C:\poi-3.10-beta2\poi-examples-3.10-beta2-20130904.jar"
"C:\poi-3.10-beta2\poi-excelant-3.10-beta2-20130904.jar"
..
結束2個新行
不知道什麼我失去了:-(,我已經花了整整一天該死固定這一點,並沒有留下無奈地發佈這個問答!是的,我沒試過,StackOverflow的所有選項已經並沒有什麼工作了:-(
選項1:
Open the Control Panel
Go to System
Go to Advanced Systems Properties
Then Environment Variables
In System Variables, click Add
New Variable Name: _JAVA_OPTIONS
New Variable Value: -Xmx512M (tried -Xmx1024M too)
Click OK
選項2:
Reinstall Java
選項3:
Open the Run box
Enter msconfig
Services (tab)
CHECK "Hide All Microsoft Services"
Click "Disable All" (button)
Click APPLY
Click OK
方案4:
Update manifest.txt file with classpath
幫助深表感謝
注:
程序打開了GUI(雖然我進入java crazyrunner.CrazyRunner
),並在命令時,我試圖給CrazyRunner.jar
獨提示,它會拋出一個錯誤,說明Java Virtual Machile Launcher. A java exception occurred
PS:
I我使用的是Windows 8,而Java的版本是1.7.0_51,我沒有使用任何IDE,我確實有這樣的預感,這可能是由於classpath中的jar文件太多。如果是的話,修復這是非常需要的!
請使用編輯器頂部的小圖標來格式化您的問題。 – 2014-02-08 15:31:43
可能在清單文件http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html中存在錯誤,但我認爲使用工具生成清單比如http://www.gradle.org/ – jbaliuka
條目看起來無效,它應該是相對的,不需要引用。應該有可能找出正確的格式,但從來沒有手動,有很多工具要做,例如maven https://maven.apache.org/plugins/maven-jar-plugin/examples/manifest-customization.html andy IDE也應該能夠將類路徑條目導出到jar。 – jbaliuka