再說一下Java裡面的路徑問題,CLASSPATH和SOURCEPATH

來源:互聯網
上載者:User

java的路徑讓許多人,特別是初學者感到迷惑,我這裡再解釋一下。我們分2個階段,1是編譯階段,2是運行階段。


一、編譯階段

  這個時候,我們要提供給編譯器的有2個路徑參數,第一個是原始碼在哪裡?也就是 sourcepath,第二個就是依賴的類在哪裡?也就是 classpath


我們看一個例子


d:/temp/TestCP/d1/p1/Class1.java


package p1;<br />public class Class1 {<br /> public void show(){<br /> System.out.println("Class1");<br /> }<br />}




d:/temp/TestCP/d2/p2/Class2.java

package p2;<br />import p1.Class1;<br />public class Class2 {<br /> public static void main(String[] args){<br /> Class1 c1 = new Class1();<br /> c1.show();<br /> }<br />}


編譯的時候,我們先在 d:/temp/testCP/d1 編譯Class1

D:/temp/testCP/d1>javac p1/Class1.java


編譯成功


然後我們在 d:/temp/testCP/d2 下編譯 Class2。有2個方法進行編譯:

第一:指定源檔案 sourcepath

D:/temp/testCP/d2>javac -sourcepath .;../d1 p2/Class2.java


第二:指定classpath

D:/temp/testCP/d2>javac -sourcepath . -cp ../d1 p2/Class2.java


兩個方法都能達到我們需要的效果。也就是說,在路徑裡,系統會在其下面根據package自動尋找源檔案或者class檔案的。


另一個情況,如果我們需要某個類庫的支援,比如jar檔案,那麼我們就不能只包含路徑就行了,而是應該包含整個路徑和檔案名稱,比如

D:/temp/testCP/d2>javac -sourcepath . -cp ../d1;d:/lib/spring.jar p2/Class2.java


第二、在運行時

我們需要指定其他的class在哪裡,以及我們需要的類庫在哪裡,所以運行命令應該是


D:/temp/testCP/d2>java -cp .;../d1;d:/lib/spring.jar p2.Class2
Class1



總結:

路徑分為2種,如果是jar或者zip形式的,那麼必須包含完整的路徑和檔案名稱,大小寫都不能錯。

如果是class檔案,那麼只需要包含路徑就行了。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.