2017-09-20 101 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

這非常有幫助,謝謝。 –

相關問題