javac, java命令列

來源:互聯網
上載者:User
javac和java命令列中的-classpath選項
這是個很基礎的問題,但是因為基本上都是用現有的IDE工具 來開發java程式,所以很少有人意識到這一點。

javac
-classpath,設定要搜尋類的路徑,可以是目錄,jar檔案,zip檔案(裡面都是class檔案),會覆蓋掉所有在CLASSPATH裡面的設定。
-sourcepath, 設定要搜尋編譯所需java 檔案的路徑,可以是目錄,jar檔案,zip檔案(裡面都是java檔案)。

所以一個完整的javac命令列應該是這樣的,
假設abc.java在路徑c:/src裡面,在任何的目錄的都可以執行以下命令來編譯。
javac -classpath c:/classes;c:/jar/abc.jar;c:/zip/abc.zip -sourcepath c:/source/project1/src;c:/source/project2 /lib/src.jar;c:/source/project3/lib/src.zip c:/src/abc.java

表示編譯需要c:/classed下面的class檔案,c:/jar/abc.jar裡面的class檔案,c:/zip/abc.zip裡面的class檔案
還需要c:/source/project1/src下面的源檔案,c:/source/project2 /lib/src.jar裡面的源檔案,c:/source/project3/lib/src.zip裡面的源檔案,
注意:jar,zip裡面的源檔案不會有什麼改動,目錄下的源檔案,有可能會被重新編譯。

java
-classpath, 設定要搜尋的類的路徑,可以是目錄,jar檔案,zip檔案(裡面都是class檔案),會覆蓋掉所有的CLASSPATH的設定。
由於所要執行的類也是要搜尋的類的一部分,所以一定要把這個類的路徑也放到-classpath的設定裡面。
表現在,在要執行的類的路徑裡面執行java時,一定要添加上點號(.)標示本目錄也要搜尋。

假設abc.class在路徑c:/src裡面
可以在任何路徑下執行以下命令
java -classpath c:/classes;c:/jar/abc.jar;c:/zip/abc.zip;c:/src abc

在windows下,
檔案路徑的分割符為反斜線  /  
類或者java檔案清單的分割符為分號 ;

在linux下
檔案路徑的分隔字元位斜杠 /
類或者java檔案清單的分隔字元為冒號 :

一個linux下編譯和啟動並執行例子
 /usr/local/java/bin/javac -classpath /tmp/javatest/lib/mail-1.3.3.jar -d /tmp/javatest/bin/ /tmp/javatest/src/jp/co/realseed/Capability.java

/usr/local/java/bin/java -classpath /tmp/javatest/lib/mail-1.3.3.jar:/tmp/javatest/bin/ jp.co.realseed.Capability

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.