我知道这个问题之前已被问过很多次,但我是一名新手程序员,尽管在这个网站上尝试了很多解决方案,我仍然无法解决这个问题。如果你能花时间弄清楚我做错了什么,我会非常感激。
操作系统:Windows 8
Java版本:1.8.0 update 25
我正在使用的命令提示符是Windows附带的命令提示符。 (我假设有其他类型,所以我只是让它更清楚。)代码是一个非常基本的代码。
package com.thefinshark.intro;
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome.");
}
}
所以,首先我将目录更改为C:\javawork
,其中保存了Welcome.java。我将路径设置为C:\Program Files\Java\jdk1.8.0_25\bin
,然后编译代码。编译似乎很好,我在C:\javawork
中找到了Welcome.class文件。然而,执行仍然返回"无法找到或加载主类欢迎"。我已尝试过C:\javawork>java Welcome
和C:\javawork>java com.thefinshark.intro.Welcome
以及其他各种变体。我还将类路径更改为C:\
和C:\javawork
,但它仍然无法正常工作。有人在回答类似的问题时建议将dt.jar和tools.jar添加到类路径中,但没有骰子。
如果有人可以提供帮助,那就太棒了,而且我很乐意帮助将信息传递给其他有这类问题的人。 (正如我打字一样,我正在查看一长串相似的问题。)
答案 0 :(得分:3)
目录结构必须与源文件的包名称匹配。因此,如果您的类位于包com.thefinshark.intro
中,那么您的源文件必须位于com\thefinshark\intro
目录中。
因此,例如,您应该将源文件保存为C:\javawork\com\thefinshark\intro\Welcome.java
,然后从目录C:\javawork
编译并运行它:
C:\javawork> javac com\thefinshark\intro\Welcome.java
C:\javawork> java com.thefinshark.intro.Welcome
注意:javac
命令需要您正在编译的源文件的文件名(com\thefinshark\intro\Welcome.java
),而java
命令需要完全限定的班级名称(com.thefinshark.intro.Welcome
)。
有关如何使用包的更多详细信息,请参阅Lesson: Packages。