使用javac找不到输出.class文件?

使用javac找不到输出.class文件?,java,windows-7,javac,Java,Windows 7,Javac,我在Win7的cmd中键入javacHelloWorld.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

我在Win7的cmd中键入
javacHelloWorld.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目录添加到我的路径中。我想知道这是否重要?

如果
HelloWorld.java
编译时没有任何错误,那么文件
HelloWorld.class
肯定应该在
java\u 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\u tut

必须将源文件
HelloWorld.java
放入目录中

C:\Projects\java\u tut\my\test

然后,在
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.
C:\Projects\java\u tut>javacmy/test/HelloWorld.java
C:\Projects\java\u tut>dir my\test
[...]
28.03.2014  09:35              .
28.03.2014  09:35              ..
28.03.2014 09:35 434 HelloWorld.class
28.03.2014 09:34 134 HelloWorld.java
[...]
C:\Projects\java_tut>java my.test.HelloWorld
你好,世界。

说明:如果使用包(并且您应该始终为您的类使用包),您不能“坐”在该包中,而是始终从包(文件夹)外部运行命令。

YourClassName。在这种情况下,class
是正确的文件。类名不是基于.java文件名生成的。它是根据.java文件中的类名生成的。在.java文件中,我将类命名为
YourClassName
,而不是
HelloWorld

另一个可能的原因是.java源文件为空

这会导致javac无提示地生成任何内容


我在Hello Word程序和Macintosh编辑器中体验到了这种效果,它可以用Cmd-S保存,但不能用Ctrl-S保存。我是在20年的Java编程后学会的。

我运行了
javac HelloWorld.Java
,但没有输出文件(因此,这个问题).HelloWorld的软件包声明是什么?@Seelenvirtuose我正在写我的第一个程序,伙计。我不知道那是什么。你能告诉我如何查找你想要的信息吗?也许你应该向我们展示Java源文件。如果这真的是问题所在,那么
javac
也应该失败吗?是的,你是对的。我还假设他有一个编译错误。我想展示的是初学者应该遵循的正确方法。通过这个过程,不管他以前遇到了什么问题,他都应该得到一个工作程序(以及预期的输出)。在这种情况下,您应该看到以下编译器错误消息:“[515]%javac HelloWorld.java HelloWorld.java:1:error:class YourClassName是公共的,应该在名为YourClassName.java的文件中声明”真想不到我花了10分钟才拿到这个。我的正在保存到另一个位置,并继续尝试构建原始文件。无论如何谢谢你。但我的只有两年。