我已经构建了一个JAR文件,它在我安装了Eclipse的PC(XP)上运行良好。它也适用于另一台PC,它也有Eclipse。
我已经尝试在没有Eclipse的另一台PC(XP)上运行它。虽然它包含JDK和多个JRE。通过单击或从命令提示符执行JAR文件。
我不完全确定,但我最好的猜测是环境变量设置不正确。这是我从命令提示符收到的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: ...
任何帮助都将不胜感激。
答案 0 :(得分:4)
它必须是CLASSPATH问题。
堆栈跟踪还应该说明找不到哪个类。一旦你有了,那么找到哪个jar有那个类。然后将该jar文件添加到类路径中或将其添加到classpath env变量中。
答案 1 :(得分:3)
这可能是其他人所说的类路径问题。
有一点需要注意的是你的罐子是如何构造的。在对话框中有许多选项可用于导出可运行的jar;
取决于您为此选择的内容取决于jar的行为方式。如果提取了类,则不在JDK中的依赖类应该在类路径上。我建议采用这种方法,因为它更简单。
现在,问题是 - 您是否在类路径中使用依赖项而不是在eclipse项目的构建依赖项中?如果是这样,它将不会被打包/压缩到jar旁边,因为eclipse不知道它(但是java仍会在你的系统上找到它,因为它在类路径上)。此外,如果你已经保存了一个ANT脚本并在eclipse中更新了构建路径,eclipse将不会更新该ANT脚本 - 只生成一次。
答案 2 :(得分:0)
单击时调用jar文件时不考虑环境变量(相当于运行javaw -jar your.jar)。
我很确定它在Eclipse之外的第一台PC上也不起作用。