java-缺少主类

java-缺少主类,java,Java,我正在尝试运行《头先Java》一书中最早的一个示例 “javac”从.java文件创建了一个.class文件,但“java”在尝试运行.class文件时抱怨“缺少主类”(我也尝试了java-cp。“…”,结果相同): 你需要以同样的方式运行它 javac MyFirstApp.java java MyFirstApp 来自MyFistApp.java所在的目录。包名是什么?也许你有 包组织测试 在头文件中?'javac'调用编译器-您需要将.java文件传递给编译器 “java”将运行编译后的

我正在尝试运行《头先Java》一书中最早的一个示例

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

你需要以同样的方式运行它

javac MyFirstApp.java
java MyFirstApp

来自MyFistApp.java所在的目录。

包名是什么?也许你有

包组织测试


在头文件中?

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

“java”将运行编译后的代码,您可以传递编译后的文件名,但不带任何扩展名:“java MyFirstApp”


当您不在该目录中时,指定文件的完整路径应该有效。但是您是否在存放javac和java程序的目录中?如果没有,如果您没有将绝对路径放在PATH变量中,这些路径也可能需要绝对路径。

我以前尝试过在没有.class扩展名的情况下运行它,但总是使用完整路径作为参数,而不是从目录本身运行。。谢谢:)严格来说,您传递的是类的名称,而不是“没有.class的文件名”;D
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.
javac MyFirstApp.java
java MyFirstApp