最近在看disni,一個基於java語言的RDMA庫,給的代碼需要在終端編譯運行,以前寫java程序都是用IDE寫,對於如何在終端編譯和運行java程序一竅不通啊。
被disni虐了幾天,對在終端編譯java程序也有了認識,把之前記錄的筆記整理了一些出來。
最簡單的情況
最簡單的情況是指只有一個.java文件,沒有import別的jar包,沒有package。比如:
這種情況下最簡單,直接使用javac命令就可以了
依賴其他.jar文件的情況
這種,在idea或者eclipse下,我們通過在項目中引入相關的jar包就可以了,但是在終端編譯時需要在javac指令後面添加相應的參數纔可以。
上圖是一個對excel解析的程序,可以看到項目中引入了jxl.jar和poi-3.15.jar文件,我們在終端對Form.java進行編譯,首先進入進入src目錄
我們引入兩個jar包還好,如果引入多個jar包自然是不合理的。可以採用下面簡單一點的辦法
通過-Djava.ext.dirs參數可以指定所有引入jar包所在的目錄,並一次把所有的.java文件都編譯了。不過這裏竟然有個小坑,指定路徑的時候使用~竟然會找不到。。。
在運行的時候,我們依然要指定引入jar所在的位置。