我尝试从命令提示符运行示例 Java 应用程序,但收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/badlogic/gdx/helloworld/HelloWorldDesktop
Caused by: java.lang.ClassNotFoundException: com.badlogic.gdx.helloworld.HelloWorldDesktop
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: com.badlogic.gdx.helloworld.HelloWorldDesktop. Program will exit.
我用来尝试运行此应用程序的命令是:
java -cp .;gdx.jar;gdx-backend-jogl.jar com.badlogic.gdx.helloworld.HelloWorldDesktop
所有相关文件都位于当前工作目录中(.java、.class 和 .jar 文件)
我用来构建 .class 文件的命令如下(有 2 个 .java 文件):
javac -cp gdx.jar;gdx-backend-jogl.jar HelloWorld.java HelloWorldDesktop.java
同样,这是从同一工作目录运行的 - 内容HelloWorldDesktop.java
是(或多或少):
package com.badlogic.gdx.helloworld;
public class HelloWorldDesktop {
public static void main (String[] argv) {
// Application
}
}
我正在尝试以 C# 开发人员的身份学习 Java,因此虽然我在编程概念方面拥有强大的背景,但整个 java 工具链目前完全让我感到困惑。该异常表明该类HelloWorldDesktop
无法找到,但据我所知,我已经获得了正确的名称,并且已将正确的 .jar 文件添加到类路径中,因此 Java 应该能够加载此类。
为什么找不到HelloWorldDesktop
?
是的 - 问题是你有HelloWorldDesktop.class
在当前目录中,而它应该在 com/badlogic/gdx/helloworld 中
您可以使用 javac 命令修复此问题 - 只需使用-d .
告诉它治疗“。”作为输出的包根目录。
通常你会想要also按包组织源代码,但对于这个“hello world”测试来说可能不值得。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)