java - 缺少主类

时间:2010-02-19 17:34:12

标签: java

我正在尝试运行“Head First Java”一书中的第一个例子;

public class MyFirstApp {
public static void main (String[] args){
    System.out.println("I Rule!");
    System.out.println("The Worlds!");
}
}

“javac”从.java文件创建了一个.class文件 - 但是“java”在尝试运行.class文件时抱怨“缺少主类”(我也尝试过java -cp。“......”结果相同):

C:\>java \hfj\MyFirstApp.class
Exception in thread "main" java.lang.NoClassDefFoundError: \hfj\MyFirstApp/class

Caused by: java.lang.ClassNotFoundException: \hfj\MyFirstApp.class
    at java.net.URLClassLoader$1.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)
Could not find the main class: \hfj\MyFirstApp.class.  Program will exit.

3 个答案:

答案 0 :(得分:6)

您需要将其作为

运行
javac MyFirstApp.java
java MyFirstApp

从MyFistApp.java所在的目录。

答案 1 :(得分:1)

'javac'调用编译器 - 您需要传递.java文件。

'java'将运行已编译的代码 - 您传递已编译文件的名称,但没有任何扩展名:“java MyFirstApp”

当您不在该目录中时,指定文件的完整路径应该有效。但是你在拥有javac和java程序的目录中吗?如果没有,那么如果你没有将它们放在你的PATH变量上,它们也可能需要绝对路径。

答案 2 :(得分:0)

包名是什么?也许你有像

这样的东西
  

package org.test;

标题中的