Linux終端編譯java程序

最近在看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所在的位置。
這裏寫圖片描述

源碼在package中的情況

上面的Form.java直接在src的根目錄,所以在編譯的時候還是比較簡單的,當源碼在src下其他目錄時,編譯的時候也只需要帶上package路徑就可以了。

這裏寫圖片描述

現在Form.java在/src/com/lab2/ecnu/目錄下,我們編譯的時候還是在src目錄進行。

這裏寫圖片描述

這裏有一些注意的是,我們甚至可以直接到src/com/lab2/ecnu/目錄下編譯.java文件,但是不可以在src/com/lab2/ecnu/目錄下執行。

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章