通常,您将 Java .class 文件存储在哪里?

Where do you store Java .class files, conventionally?

我有一个 Java src 文件夹,我在其中存储我的 .java 文件。然后我使用终端编译它们并最终在同一目录中获得 .class 文件。这不一定会打扰我,但我从未见过专业人士这样做。

根据专业惯例(如果有的话),编译后的 .class 文件应该存储在项目目录中的哪个文件夹中?

如果您不熟悉它,您应该查看 Java classpath 的主题。我还记得当我第一次在 Java.

开始编程时发现这个问题

Java 中有 .class 文件的定义搜索路径;当您 运行 java -cp blahblahblah 设置 class 路径时。 java -jar blahblahblah.jar 打开一个 JAR file 并且 .jar 文件的清单可能指示 class 路径。默认 class路径在当前目录中。

通常你把Java classes放在文件系统的分层目录结构中的包中,在这种情况下Java编译器也会把.class文件放在相应的结构。

如果您从命令行 运行 javac-d argument 指定 .class 个文件的目标根目录。

一个典型的项目如下所示,假设您的包名为 com.example.foo 并且它包含 Foo.java 和 Bar.java:

project_dir/
   src/
      com/
         example/
            foo/
               Foo.java
               Bar.java
   bin/
      com/
         example
            foo/
               Foo.class
               Bar.class

java 编译器将以 -d bin 作为目标目录执行,并将创建与 .java 文件对应的 .class 文件。但是目的地不一定要叫bin;如果你愿意,你可以称它为 Freddydumbass,尽管这可能会使习惯于 binbuild.

的人感到困惑

大多数情况下,当构建 Java 程序或库时,.class 文件只是构建 .jar 文件的临时步骤(本质上只是一个带有 .jar 扩展名,包含 .class 文件和一些元数据),当你实际 运行 它们时,如果你将它作为一部分包含,Java 将使用 .jar 文件class路径。