我在大学里用Java做过一个模块,但是我们使用Eclipse完成了所有这些。现在我想回去学习它,但是使用命令行。
我在桌面上设置了一个文件夹,写出了我的应用程序并将其保存为“MyFirstApp.java”。这是:
public class MyFirstApp {
public static void main (String[] args) {
System.out.print("Hello World!");
}
}
我打开了命令行,cd进了相应的目录,然后输入“javac MyFirstApp.java”进行编译。 这将在名为“MyFirstApp.class”的文件夹中创建一个文件。
但是当我尝试通过输入“java MyFirstApp”来运行它时,我收到一个错误:
Exception in thread "main" java.lang.NoClassDefFoundError: MyFirstApp
Caused by: java.lang.ClassNotFoundException: MyFirstApp
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:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: Share.class. Program will exit.
我也尝试通过输入“java -cp.MyFirstApp”来运行,但后来我收到了这个错误:
Unrecognised option: -cp.MyFirstApp
Could not create the Java Virtual Machine
这可能是我的环境变量的问题吗?我对这些东西并不是很了解。
答案 0 :(得分:3)
尝试将其作为
运行java -cp . MyFirstApp
代替。 (注意空格。)
虽然很奇怪,因为通常目前的目录已经在类路径上......
答案 1 :(得分:3)
您应该在cp和类名之间添加一个空格:
java -cp . MyFirstApp
答案 2 :(得分:1)
这很有可能发生,因为您的CLASSPATH环境变量中没有当前目录。它找不到.class文件,即使它存在于您尝试运行它的目录中。
您可以将当前目录(单点“。”)添加到CLASSPATH环境变量中,也可以使用-cp参数显式传递类路径。
答案 3 :(得分:1)
尝试将类路径设置为当前文件夹(请注意其间的空格):
java -cp . MyFirstApp
答案 4 :(得分:0)
尝试设置路径和类路径