运行 另一台计算机上的 Jar 文件,出现 NoClassDefFounderror

Running Jar file on another computer, getting NoClassDefFound error

所以这是我第一次尝试 运行在另一台计算机上安装我的 Jar 文件。两台计算机都是 Windows 10。我从研究中得到的是 "classpath" 问题,当 运行 在外国计算机上运行它时有意义:As seen here 我不确定的是解决这个问题的方法。有没有我可以在 Jar 中修复它的解决方案,这样用户所要做的就是在 CMD 中 运行 这个 jar 程序而不需要额外的命令? (只有用户应该输入的命令是 java -jar)如果有解决方案,细节将非常有帮助。

如果有none,用户需要输入什么命令?我已经知道 Class not Found 错误是 NoClassDefFound 的子错误,我知道这个问题,它是如何工作的,以及诊断,但我正在努力寻找解决方案.

编辑 我认为问题是我的库在文件夹中,而带有源代码的 .jar 文件是单独的(都在我的 dist 文件夹中)。那么我如何 运行 这些文件才能在外国计算机上正常运行?

编辑 2 解决了问题。从逻辑上讲,我 运行 宁一个 jar 文件 w/o 一个库文件夹来引用导入。当我从外国计算机压缩 dist 和 运行 时,它工作得很好。

很可能与class加载顺序不确定,以及应用程序依赖项中多个 jar 文件定义的同一包之间存在冲突有关

为了识别加载的实际来源 class 您可以 运行 以下代码段

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);
    }
}