我是 java 编程新手,我创建了一个集成 selenium、apachepoi 和 java swing 的程序。在编译程序时,我能够成功编译它并且程序运行正常;但是,当我尝试为我的程序制作 jar 文件时,它显示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 内和 crazyrunner 外(在父文件夹“Java”内)的所有类文件都被添加到 jar ( 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 个新行结尾
不知道我错过了什么:-(我花了一整天的时间来解决这个问题,别无选择,只能发布这个 q!! 是的,我确实尝试了 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:
我使用的是 Windows 8,java 的版本是 1.7.0_51,我没有使用任何 IDE,我有一种预感,这可能是由于类路径中的 jar 文件太多。如果是,则急需解决此问题!