所以这是我第一次尝试在另一台计算机上运行我的Jar文件。两台计算机都是Windows 10.我从研究中得到的结果是“类路径”问题,这在国外计算机上运行时是有意义的:As seen here 我不确定的是解决这个问题的解决方案。有没有我可以在Jar中修复它的解决方案,所以用户所要做的就是在没有额外命令的情况下在CMD中运行这个jar程序? (只有用户应该输入的命令是java -jar)如果有解决方案,细节将非常有用。
如果没有,用户需要输入什么命令?而且我已经知道Class Not Found错误是NoClassDefFound的子错误,我知道这个问题,它是如何工作的,以及诊断但我正试图找到一个解决方案。
修改 我认为问题是我的库在文件夹中,而带有源代码的.jar文件是独立的(都在我的dist文件夹中)。那么如何完全运行这些文件才能在外国计算机上运行?
编辑2 解决了这个问题。从逻辑上讲,我正在运行一个没有库文件夹的jar文件来引用导入。当我拉上dist并从外国计算机上运行时,它完全正常。
答案 0 :(得分:0)
很可能它与类加载不确定性顺序有关,并且与应用程序依赖项中多个jar文件定义的同一个包之间存在冲突
为了识别加载类的实际来源,您可以运行以下代码段
package com.asd;
import java.net.URL;
public class Main {
public static void main(String[] args) {
Class aClass = YouClas.class;
String classResource = Timestamp.class.getName().replace(".", "/")+".class";
System.out.println(classResource);
URL url =aClass.getClassLoader().getResource(classResource);
System.out.println(url);
}
}