[英]Where do you store Java .class files, conventionally?
我有一個Java src文件夾,我在其中存儲我的.java文件。 然后我使用Terminal編譯它們並最終在同一目錄中獲取.class文件。 這不一定會打擾我,但我從未見過這是專業的。
通過專業約定(如果存在),在項目目錄中的哪個文件夾中應該存儲已編譯的.class文件?
如果您不熟悉它,則應該查看Java類路徑的主題。 我記得在我第一次開始使用Java編程時發現這種混亂。
Java中有.class文件的定義搜索路徑; 當你運行設置類路徑的java -cp blahblahblah
。 java -jar blahblahblah.jar
打開一個JAR文件 ,而.jar文件的清單可能會指定類路徑。 默認的類路徑位於當前目錄中。
通常,您將Java類放在文件系統中的分層目錄結構中的包中,在這種情況下,Java編譯器也會將.class
文件放在相應的結構中。
如果從命令行運行javac
,則-d
參數指定.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
作為目標目錄,它會創建.class
對應文件.java
文件。 但目的地不必被稱為bin
; 如果你願意的話,你可以稱之為Freddy
或者dumbass
,盡管這可能會讓人們習慣於bin
或者build
。
很多時候一個Java程序或庫建立的時候, .class
文件只是朝着建立一個.jar文件(實際上就是用一個.zip格式的臨時步驟.jar
擴展,包含.class文件和一點點元數據),當您實際運行它們時,如果將它包含在類路徑中,Java將使用.jar文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.