我正在尝试运行“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.
答案 0 :(得分:6)
您需要将其作为
运行javac MyFirstApp.java
java MyFirstApp
从MyFistApp.java所在的目录。
答案 1 :(得分:1)
'javac'调用编译器 - 您需要传递.java文件。
'java'将运行已编译的代码 - 您传递已编译文件的名称,但没有任何扩展名:“java MyFirstApp”
当您不在该目录中时,指定文件的完整路径应该有效。但是你在拥有javac和java程序的目录中吗?如果没有,那么如果你没有将它们放在你的PATH变量上,它们也可能需要绝对路径。
答案 2 :(得分:0)
包名是什么?也许你有像
这样的东西标题中的package org.test;
?