在我們使用javac和java命令來編譯和運(yùn)行Java程序時(shí),經(jīng)常會(huì)碰到需要引入外部jar依賴的情況。例如當(dāng)我們使用org.json.JSONObject時(shí),我們就需要引入json.jar這個(gè)外部包。但使用javac編譯Java程序時(shí),如何指定jar依賴呢?
我們用一個(gè)例子來說明。在下面的例子中,我們的主程序是Main.java,它的編譯需要兩個(gè)jar文件:json.jar和fast.jar,這兩個(gè)jar文件都放在了./libs文件夾下。
javac -cp .:./libs/json.jar:./fast.jar Main.java
上面的命令會(huì)編譯出Main.class文件。要運(yùn)行這個(gè)class,我們需要下面的命令:
java -cp .:./libs/json.jar:./libs/fast.jar Main
注意,在運(yùn)行時(shí),我們同樣需要指定它的jar依賴,否則會(huì)出現(xiàn)如下的運(yùn)行時(shí)錯(cuò)誤:
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject