我有一個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這樣的構建工具,它們將它們放置在不同的文件夾中 –