我有一个Java src文件夹,用于存储我的.java文件。然后我使用Terminal编译它们,最终在同一个目录中获取.class文件。这并不一定会打扰我,但我从来没有见过这样做的专业。传统上,你在哪里存储Java .class文件?
按照职业惯例(如果存在的话),项目目录中的什么文件夹应该存储已编译的.class文件?
我有一个Java src文件夹,用于存储我的.java文件。然后我使用Terminal编译它们,最终在同一个目录中获取.class文件。这并不一定会打扰我,但我从来没有见过这样做的专业。传统上,你在哪里存储Java .class文件?
按照职业惯例(如果存在的话),项目目录中的什么文件夹应该存储已编译的.class文件?
如果您不熟悉它,您应该查看Java classpath的主题。我记得当我第一次开始使用Java进行编程时发现这种混淆。
在Java中有一个为.class文件定义的搜索路径;当您运行设置类路径的java -cp blahblahblah
时。 java -jar blahblahblah.jar
将打开一个JAR file并且.jar文件的清单可能会指示类路径。默认的类路径在当前目录中。
通常情况下,您将Java类放入文件系统中的分层目录结构中,在这种情况下,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
;如果你愿意,你可以称它为Freddy
或dumbass
,尽管这可能会使人们对bin
或build
产生困惑。
大多数时候,当Java程序或库的构建,将.class
文件只是朝着建立一个.jar文件(实际上只是一个.jar
扩展名.zip格式,包含.class文件和一个小的临时步骤一些元数据),而当你真正运行它们时,如果你将它作为类路径的一部分包含在内,Java将使用.jar文件。
这非常有帮助,谢谢。 –
通常? “bin”或“build”,然后放入容器 - 一个罐子或战争或耳朵文件。 –
值得一提的是,对不起,我是一名学生,在编译后立即运行它们几乎不需要.class文件。我不要求他们在一个专业档案文件中,但只是好奇他们通常存储在哪里。 –
在教学中,你使用IDE和/或像Maven/Gradle这样的构建工具,它们将它们放置在不同的文件夹中 –