使用javac找不到输出.class文件?
我在Win7的cmd中键入使用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
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分钟才拿到这个。我的正在保存到另一个位置,并继续尝试构建原始文件。无论如何谢谢你。但我的只有两年。