我在win 7中的cmd中输入
javac helloworld.java
。
C:\Users\User\Downloads\java_tut>javac HelloWorld.java
C:\Users\User\Downloads\java_tut>dir *.class
Directory of C:\Users\User\Downloads\java_tut
03/28/2014 05:42 PM 429 YourClassName.class
C:\Users\User\Downloads\java_tut>
我在以下目录中搜索了 helloworld.class: java、jre、jdk、java_tut、jre/bin、jdk/bin 和我的整个硬盘。
我确实需要手动将 /jdk/bin 目录添加到我的路径中。我想知道这重要吗?
另一个可能的原因是空的 .java 源文件。
这会导致 javac 默默地不产生任何结果。
我在 Hello Word 程序和 Macintosh 编辑器中体验到了这种效果 - 使用 Cmd-S 可以保存,但不能使用 Ctrl-S 保存。我在学习了 20 年 Java 编程后才学到这一点。
如果
HelloWorld.java
编译没有任何错误,那么文件HelloWorld.class
肯定应该位于java_tut
目录中。
编辑(根据您的评论和编辑):
检查您的 Java 源文件
HelloWorld.java
是否如下所示:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hellow, World!");
}
}
该类必须与 Java 源文件同名,否则您会收到以下编译器错误消息:
[515]% javac HelloWorld.java
HelloWorld.java:1: error: class YourClassName is public, should be declared in a file named YourClassName.java
public class YourClassName {
^
1 error
虽然我问的是包声明,但我可以告诉你正确的做法:
假设您有一个具有该源的 Java 类:
package my.test;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World.");
}
}
假设你的项目根目录是
C:\Projects\java_tut
您必须将源文件
HelloWorld.java
放入目录中
C:\Projects\java_tut\我的 est
然后,使用以下命令在
java_tut
目录中编译并启动这个小程序:
C:\Projects\java_tut> javac my/test/HelloWorld.java
C:\Projects\java_tut> dir my\test
[...]
28.03.2014 09:35 <DIR> .
28.03.2014 09:35 <DIR> ..
28.03.2014 09:35 434 HelloWorld.class
28.03.2014 09:34 134 HelloWorld.java
[...]
C:\Projects\java_tut> java my.test.HelloWorld
Hello World.
说明:如果使用包(并且您始终应该为您的类使用包),您不能“坐在”该包中,而始终从包(文件夹)外部运行命令。
YourClassName.class
是正确的文件。类名不是根据 .java 文件的名称生成的。它是根据 .java 文件中的类名生成的。在我的 .java 文件中,我将类命名为 YourClassName
而不是 HelloWorld
。
原因之一可能是。您还没有保存您的程序。在运行 javac 命令之前,请务必保存程序(如果您做了任何更改)。然后运行 javac 命令将生成 .class 文件。
这对我有帮助,
原因之一可能是。您还没有保存您的程序。在运行 javac 命令之前,请务必保存程序(如果您做了任何更改)。然后运行 javac 命令将生成 .class 文件。