gpt4 book ai didi

java - cmd java 不工作

转载 作者:行者123 更新时间:2023-12-01 07:08:46 27 4
gpt4 key购买 nike

我目前正在学习 Java 以及如何使用命令提示符作为编译器。但是每次我执行 java 命令,然后执行我的测试类“Hello”时,我都会收到以下错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: Hello (wrong name: hello/Hello)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

现在我已经检查了我的“CLASSPATH”环境变量,它是正确的,如下所示: .;C:\Program Files\Java\jdk1.7.0_25\bin; 我什至尝试过从 CLASSPATH 的开头删除 .; 但它没有做任何不同的事情。现在,通过创建 .java 类的 .class 版本,我的 javac 命令可以正常工作。但我就是无法让它实际执行 java 命令。

我的类的名称是 Hello,因此我输入 javac Hello.java 将我的文件编译为类文件,并且它有效。但是当我输入: java Hello 时,我收到了上述错误消息。我已经在我制作的 NetBeans IDE 上测试了该程序,它运行得很好,没有错误。

可能发生什么情况会阻止我执行 java 命令来运行 .class 文件?

最佳答案

The name of my class is Hello so I typed javac Hello.java to compile my file as a class file and it worked. But when I enter: java Hello

最可能的问题是,在运行 java 程序时,您没有将完整的类名与包结构一起放置。它应该按照此处提到的方式运行:

java packagenhierarchy.Hello 

假设您的包名称是 com.my.hello 并且您的主类名称是 Hello 那么它应该从包含顶级包的目录运行:

java com.my.hello.Hello

更新:根据您的评论并了解工作目录,以下是您应该运行的内容:

java -cp C:\hello\src\hello hello.Hello

关于java - cmd java 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18094232/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com