javac的編譯單位其實就是單個的java文件,為了達到同時編譯多個java文件的目的,可以將所需編譯的java文件路徑保存在一個txt中,比如sourcelist.txt,以換行為分隔符(這個過程稱為類文件注冊)。這些java文件沒有彼此聯系的必要,它們可以是隸屬不同的包、在不同的文件夾下(當然建議包路徑相同的java類文件放在同一文件路徑下),javac命令只會一行一行地讀取其中的記錄,作為一個單位進行類編譯。
舉例說明。假設你的這個包放在src文件夾下,src的父目錄為project,sourcelist.txt也事先新建在project文件夾下。首先將這個包中你需要編譯的java文件相對於src的路徑(如src\com\test\Test.java)注冊到sourcelist.txt文件中;接著在project文件夾中新建一個bin文件夾(或者class文件夾,命名隨你樂意取),用以編譯後class文件的放置(這個配以javac命令中-d選項去理解);如果還有其他類庫(如jxl.jar或者mysql.jar),建議在project目錄下新建一個lib(同樣命名不限)文件夾,然後復制到該文件夾下(配以-classpath選項理解);最後檢查上述准備工作都完成,win + R、輸入cmd都不用講,現在在cmd中用cd命令切換到project目錄,然後輸入命令:
javac -classpath lib/jxl.jar -sourcepath src @sourcelist.txt -d bin
現在就很好理解了。-d選項就是destination的意思,即生成class文件被送到該選項後面的bin文件夾;-classpath就是將你要用到的jar包注冊到類載入路徑中;-sourcepath就是告訴javac命令去哪裡找類文件。
最後呢,為了方便,可以在project文件夾下新建一個bat文件,並輸入以下內容:
javac -classpath lib/jxl.jar -sourcepath src @sourcelist.txt -d bin
@pause
這樣每次直接點擊即可,而你需要編譯其他包的或者其他java文件,直接在sourcelist.txt文件中添加或修改。這其實也是一種「弱耦合」、模塊化的表現。
⑵ 如果一個源文件很多個*.java文件,怎麼編譯運行啊
什麼叫一個源文件很多個*.java文件
1個java文件就是1個源文件,多個java文件就是多個源文件,說法就是錯誤的
如果要一起編譯,就放在一個目錄下執行javac
*.java
⑶ 如何用javac 編譯多個目錄中的java文件
根據我個人的經驗,只要找到包含主函數的那個類進行編譯,如果在主函數內有導入其他用戶編寫的包,會自動進行編譯得到.class文件的。你可以試試看。
⑷ java 同時編譯多個類的問題
可以javac 指令的參數-sourcepath指定源文件所在目錄(src),可以是一個或是多個;在同一個目錄下直接編譯主類就行。
請採納答案,支持我一下。
⑸ 一個文件夾裡面有多個java文件如何編譯
1,使用doc命令進入到該目錄
2,在該目錄下輸入編譯命令javac *.java
3,java 命令運行相應的位元組碼文件
⑹ javac一次可同時編譯數個Java源文件嗎
這個是可以的。
解釋 :javac可以編譯多個文件,通過 「javac *.java"實現,前提是這些java文件都要在此編譯路徑下,如果不在的話,先通過cd命令進行位置切換即可。