尝试在命令提示符下运行.jar文件

我试图使用我的命令提示符(Windows XP)运行一个jar文件,但得到NoClassDefFoundError。

我将DateAndTime.class文件放在名为dateandtime的文件夹中,并在源文件中指出了一个名为dateandtime的包。

在文件夹外面,我有一个带有规范的manifest.mf文件

Main-Class:dateandtime.DateAndTime

我把它放在命令文件中

jar cmf manifest.mf myJarFile.jar dateandtime

这会在manifest.mf所在的文件夹中创建myJarFile.jar。

当我尝试运行这个jar文件时,我得到了NoClassDefFoundError

java -jar myJarFile.jar

如果我在没有指定包的同一目录中jave所有类,那么.jar文件运行正常,但是一旦我尝试指定包,即使myJarFile.jar被创建,我也会收到错误。

这是为什么?

问候

如果您获得NoClassDefFoundError则意味着在编译类期间出现的类在执行期间不存在。 这意味着您的JAR文件不包含您的类所需的所有依赖项以便运行。 由于您的问题缺乏关于项目结构的详细信息,我只建议您重新访问应用程序的依赖关系树并确定需要包含在JAR中的所有类。

语法:java -jar fileName.jar

示例:java -jar myfile.jar