尝试从命令行运行应用程序时出错:找不到类

时间:2011-06-30 12:16:49

标签: java

我在大学里用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

这可能是我的环境变量的问题吗?我对这些东西并不是很了解。

5 个答案:

答案 0 :(得分:3)

尝试将其作为

运行
java -cp . MyFirstApp

代替。 (注意空格。)

虽然很奇怪,因为通常目前的目录已经在类路径上......

答案 1 :(得分:3)

您应该在cp和类名之间添加一个空格:

java -cp . MyFirstApp

答案 2 :(得分:1)

这很有可能发生,因为您的CLASSPATH环境变量中没有当前目录。它找不到.class文件,即使它存在于您尝试运行它的目录中。

您可以将当前目录(单点“。”)添加到CLASSPATH环境变量中,也可以使用-cp参数显式传递类路径。

答案 3 :(得分:1)

尝试将类路径设置为当前文件夹(请注意其间的空格):

java -cp . MyFirstApp

答案 4 :(得分:0)

尝试设置路径和类路径