2017-09-20 99 views
1

我有一个Java src文件夹,用于存储我的.java文件。然后我使用Terminal编译它们,最终在同一个目录中获取.class文件。这并不一定会打扰我,但我从来没有见过这样做的专业。传统上,你在哪里存储Java .class文件?

按照职业惯例(如果存在的话),项目目录中的什么文件夹应该存储已编译的.class文件?

+0

通常? “bin”或“build”,然后放入容器 - 一个罐子或战争或耳朵文件。 –

+2

值得一提的是,对不起,我是一名学生,在编译后立即运行它们几乎不需要.class文件。我不要求他们在一个专业档案文件中,但只是好奇他们通常存储在哪里。 –

+0

在教学中,你使用IDE和/或像Maven/Gradle这样的构建工具,它们将它们放置在不同的文件夹中 –

回答

4

如果您不熟悉它,您应该查看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;如果你愿意,你可以称它为Freddydumbass,尽管这可能会使人们对binbuild产生困惑。

大多数时候,当Java程序或库的构建,将.class文件只是朝着建立一个.jar文件(实际上只是一个.jar扩展名.zip格式,包含.class文件和一个小的临时步骤一些元数据),而当你真正运行它们时,如果你将它作为类路径的一部分包含在内,Java将使用.jar文件。

+0

这非常有帮助,谢谢。 –

相关问题