欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
開(kāi)始學(xué)習java--再談設置Path與Classpath(如何importjar中的class)

開(kāi)始學(xué)習java--再談設置Path與Classpath(如何import jar中的class)收藏

 
 
查看文章
   
開(kāi)始學(xué)習java--再談設置Path與Classpath(如何import jar中的class)
2008-03-29 16:30

關(guān)于Java的Classpath詳解
Java 的新入門(mén)者對classpath往往比較困惑,為何在開(kāi)發(fā)環(huán)境中能運行的東東出去就不好,或在外面運行的東東挺溜的進(jìn)了開(kāi)發(fā)環(huán)境就死菜。
  java的優(yōu)點(diǎn)就是他是一個(gè)自動(dòng)支持網(wǎng)絡(luò )功能的東東,舉一個(gè)簡(jiǎn)單例子來(lái)將

  比方有一個(gè)Application用到了java.lang.String(事實(shí)上要是有一個(gè)程序沒(méi)用到它,太難以想象了)和com.shinechina.MyClass(我自己寫(xiě)的)這兩個(gè)類(lèi)。

  版本1:


package com.shinechina;
public class MyClass
{
public static void main(String args[])
{
String str = "版本1: hello, welcome to chinaasp java 技術(shù)";
System.out.println(str);
}
}

  版本2:


package com.shinechina;
public class MyClass
{
public static void main(String args[])
{
String str = "版本2:hello, welcome to chinaasp java 技術(shù)";
System.out.println(str);
}
}

  現在我要運行它了

   java com.shinechina.MyClass

  現在問(wèn)題來(lái)了

  Java怎么知道到何處找呢, 他到底該怎么辦

  假定版本一在 c:\mylib\com\shinechina\MyClass.java

  假定版本二在 d:\mylib\com\shinechina\MyClass.java

  注意:不要忘了編譯成class文件吆, java文件是不能執行的

   cd c:\mylib\com\shinechina
   javac *.java
   cd d:\mylib\com\shinechina
   javac *.java


  有了:

  他先到機器的CLASSPATH去找,假設是windows系統 c:\mylib;d:\mylib;d:\jdk1.2.2\lib\rt.jar;
或 unix系統 /home/local/:/usr/local/:/usr/local/jdk1.2.2/lib/rt.jar。好, c:\mylib下他找到了com目錄,有戲, 又往下找又有shinechina目錄,目錄下找到了MyClass.class, Ok 就是他了,至于d:\mylib我的版本2的MyClass他就不理會(huì )了,至于String是在rt.jar壓縮包中待會(huì )再講他

  執行的結果就是

   版本1: hello, welcome to chinaasp java 技術(shù)

  反過(guò)來(lái)d盤(pán)的路徑在c:之前,執行的結果就是

   版本2: hello, welcome to chinaasp java 技術(shù)

  依次類(lèi)推, 只有在類(lèi)路徑上第一個(gè)找到的才會(huì )執行,你要控制他執行那一個(gè)須如此:

   java -classpath d:\mylib;%classpath% com.shinechina.MyClass

  執行的結果就是

   版本2: hello, welcome to chinaasp java 技術(shù)

  開(kāi)發(fā)環(huán)境中的執行就是這樣,總有一個(gè)地方指定類(lèi)路徑的。

  注意,開(kāi)發(fā)環(huán)境往往不去讀系統路徑, 這也就是在外面運行的東東挺溜的進(jìn)了開(kāi)發(fā)環(huán)境就死菜的原因嘍。

比如說(shuō)jbuilder, jdevoloper從菜單project->project properties...->paths標簽->Add...->添加定義好的library點(diǎn)ok或者new->輸入 name和classpath->ok。這個(gè)東東就被添加到了classpath中(運行時(shí)可在message view中看到)

  再比如說(shuō)visualAge for java , 點(diǎn)中你要運行的類(lèi)->鼠標右擊選中特性->類(lèi)路徑標簽1。->編輯->全選,好,開(kāi)發(fā)環(huán)境中的所有類(lèi)都能找到了。

  2、立即計算(只選中你需要的類(lèi), 如果有用class.forName之類(lèi)通過(guò)程序顯式裝載的類(lèi)的話(huà),需要自己從編輯中手工家入了, 開(kāi)發(fā)環(huán)境每能力幫你算出來(lái)了,如果內存沒(méi)有問(wèn)題的話(huà),直接編輯->全選更方便吆)

  3、如果你的類(lèi)并不想引入開(kāi)發(fā)環(huán)境的話(huà),點(diǎn)中添加額外路徑,編輯(下面的一個(gè)), 我不喜歡這樣, 就不詳細介紹了

  高手的話(huà),直接用jdk, 那么只好麻煩你要么加到系統classpath中(unix下為$CLASSPATH), 要么編譯運行時(shí)顯式指明classpath

  下面介紹一個(gè)初學(xué)者最容易犯的錯誤

  還以上節介紹的例子

  假定版本一在 c:\mylib\com\shinechina\MyClass.java

  編譯后c:\mylib\com\shinechina\MyClass.class

  怎么指定classpath呢

  常見(jiàn)毛病

   1、c:\mylib\com\shinechina\

   2、c:\mylib\com\

  正確

   1、c:\mylib\

   2、c:\mylib  

============================================================

Java程序開(kāi)發(fā)中,ClassPath是尋找Java類(lèi)的路徑,如同DOS里面的path一樣。

Java的類(lèi)的封裝結構是 package.Class,比如說(shuō)我的ClassPath是如下設置的:
set classpath="d:\java_class"

那么我們有一個(gè)類(lèi)是 chen.Rose,編譯好后怎么存放呢?

答案是,我們可以在d:盤(pán)的java_class目錄下建立一個(gè)chen子目錄,然后把Rose.class文件復制到該子目錄下,看起來(lái)好下:
d:\java_class\chen\Rose.class

這樣我們在以后使用時(shí),只需如下調用就可以
import chen.Rose;
class SendRose {
Rose newRose;
... ...

同理,我們建立的chen包下的Flower類(lèi):
package chen;
class Flower {
...
}

編譯后將Flower.class文件復制到 d:\java_class\chen目錄下,
就可以在其它的地方引用了,甚至可以使用 import chen.*;

一些公司把它們的一組類(lèi)往往打包發(fā)行,把這個(gè)包壓縮成Jar或Zip,設置的方法如下:
set classpath="d:\java_class;d:\oracle\ora.jar"
你只需把文件名包含到 classpath中去即可正確地引用該壓縮包中的類(lèi)了。 (如何在代碼中import jar中的class參見(jiàn)最后的總結5))

對于jdk1.3以上的版本,引用java.*,sun.*等系統包不需要設置classpath.

使用當前目錄下的類(lèi)需要將點(diǎn)包含在classpath中,如下所示:

set classpath=".;d:\java_class"

注意:與設置path一樣,不同路徑之間用分號分隔開(kāi)。

=======================================================================

總結:

1、在Java程序開(kāi)發(fā)中,ClassPath是JVM尋找Java類(lèi)的路徑,也是java.exe執行解釋時(shí)需要的類(lèi)路徑。

2、Java類(lèi)的結構是:Package.class (或Package/class),所以,ClassPath設置的路徑不能包括包名(在windows中也就是目錄名)

3、如果你在包含類(lèi)的當前目錄下(不進(jìn)入到包目錄中)執行java.exe pakcage.class,那么不需要設置classpath,因為java.exe可以在默認當前目錄尋找類(lèi)并執行(當然,一個(gè)名為 a.b.class 的類(lèi)首先必須放置到 ..\a\b\目錄下才能被正確找到),但是如果你需要在任何目錄下執行java.exe pakcage.class就必須設置classpath。

4、優(yōu)先級問(wèn)題:因為JDK5.0以上可以不設置classpath在當前目錄下,按包名 對應的目錄尋找到需要執行的類(lèi),但是,如果我們同時(shí)也設定了環(huán)境變量classpath,而且當前路徑下和classpath設定的路徑下有同名的類(lèi),那 么會(huì )執行哪一個(gè)?答案是:環(huán)境變量設置優(yōu)先(也只執行先找到的那一個(gè))。這有兼容性的考慮,因為jdk5.0之前,是必須設置classpath的,沒(méi)有 默認當前路徑的特性。

5)對于一些公司把它們的一組類(lèi)打成 jar包發(fā)行,除了在設置classpath時(shí)用全名,在代碼中需要使用jar中的class時(shí),如何import呢?也很簡(jiǎn)單,以插件 easyexplore.jar為例,先在classpath中設置:set classpath=%classpath%,L:\eclipse\plugins\easyexplore.jar。解開(kāi)jar發(fā)現他的class是 在如下目錄中..\org\sf\easyexplore\,也就是說(shuō)它的class的包名是org.sf.easyexplore,所以在代碼中可以通 過(guò) import org.sf.easyexplore.*; 來(lái)使用他提供的類(lèi)。如果不設置classpath,那么也可以將jar文件放在任何位置,只要在命令行也可以通過(guò)如下形式使用即可。

javac -classpath   L:\eclipse\plugins\easyexplore.jar    self.java

(self.java就是設置了import,需要使用jar中類(lèi)的源程序,所以,jar可以放置于任何目錄下。但前提是jar包必須在環(huán)境變量的classpath中指定或在命令行的-classpath參數中指定)

        如果需要在eclipse中使用,則引入jar文件的流程如下:在工程項目的根目錄點(diǎn)擊右鍵查看屬性(Properties),選擇java build path的條目點(diǎn)擊Libraries標簽,點(diǎn)擊"add External jar" 的按鈕,選取你要載入的jar文件打開(kāi)確定就可以了。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
圖解classloader加載class的流程及自定義ClassLoader
Java運行時(shí)命令行的寫(xiě)法
windows系統下JDK1.6環(huán)境變量配置
javac功能全面介紹
Java 6中類(lèi)路徑ClassPath對通配符的支持
temp
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久