运行 java cmd 中的文件 - 给出错误

Running java file in cmd - error given

我最近将一个项目从一台机器移动到另一台机器,但现在在尝试 运行 java 新机器上的文件时出现错误。我试图在命令提示符下从 Android 项目的一部分 运行 一个 java 文件,但出现错误。该文件编译正常,但无法 运行。这是我得到的错误;

Exception in thread "main" java.lang.NoClassDefFoundError: ChatServer (
e: edu/UTEP/android/ChatServer)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access0(Unknown Source)
        at java.net.URLClassLoader.run(Unknown Source)
        at java.net.URLClassLoader.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

知道我收到此错误的原因吗?

确保提供 ChatServer 的 .jar 在您的运行时类路径中。

当 jvm 不归档 class 路径时会出现此问题。 检查您将 jar 文件或 lib 文件夹放在哪里。 移至该目录,然后 运行 javac 然后 java 。 问题将得到解决。

您的 ChatServer 在顶部有一个包声明 edu.UTEP.android。所以要么你需要删除那个包声明重新编译你的 java 文件然后 运行 它

(或)

您需要创建这样的文件夹结构

CurrentDir/edu/UTEP/android/

将 java 文件保存在 android 文件夹中,并从 CurrentDir 调用 java ChatServer。这两个中的任何一个都可以解决问题:-)

更多关于包的信息,可以参考我之前类似问题的回答