Java ClassPath

Java class path

最近遇到了兩個(gè)問(wèn)題

  1. 設(shè)置 Atomauto complete 的時(shí)候發(fā)現(xiàn)需要設(shè)置 class path ,但是完全沒(méi)弄懂class path 是什么意思.
  2. 正在學(xué)習(xí)的 algorithm 課程需要導(dǎo)入第三方包,以前都是用 intellij 導(dǎo)入,不知道第三方包的導(dǎo)入機(jī)制是怎樣的.

wikipedia

概覽

  1. Class-path 的作用是告訴 Java 去 哪里 找到代碼中導(dǎo)入的 class.
  • Java 虛擬機(jī)中的尋找 class 順序
    • bootstrap classes 引導(dǎo)程序:那些 Java platform 的基本 class 以及程序中需要使用的 private classes.
    • extension classes: 在 JRE 或者 JDK 中的擴(kuò)展 class, 路徑一般為 jre/lib/ext/.
    • 用戶(hù)自定義的 packageslibrary.
  • 只有 JDK standard APIextension package 不需要設(shè)置路徑,用戶(hù)自定義的 packageslibrary 必須在 command line 裡面設(shè)置路徑,或者在 manifest 中設(shè)置.

為 Java 程序設(shè)置路徑

假設(shè)擁有一個(gè)叫做 org.mypackage 的包,裡面包含以下 class

  • HelloWorld(main class)
  • SupportClass
  • UtilClass
    所以如果要調(diào)用這個(gè)包裡面的 class 需要在 command line 裡面寫(xiě)上 java -cp /home/user/myprogram org.mypackage.HelloWorld

通過(guò) environment variable 環(huán)境變量設(shè)置路徑

對(duì)於上面的例子,在環(huán)境變量中應(yīng)該如下設(shè)置

  • set CLASSPATH=D:\myprogram
  • java org.mypackage.HelloWorld

如果沒(méi)有設(shè)置環(huán)境變量,目前工作路徑就會(huì)作為 CLASSPATH

  • 假設(shè)工作路徑是 D:\myprogram
  • 我們不需要設(shè)置系統(tǒng)的 CLASSPATH
  • 建議在環(huán)境變量中添加 "." ,代表添加當(dāng)前路徑到環(huán)境變量

Jar file 設(shè)置路徑

如果在 *D:\myprogram\lib* 中有一個(gè) Jar file 叫做 supportLib.jar.

  • 命令行設(shè)置應(yīng)該如下
    • java -classpath D:\myprogram;D:\myprogram\lib\supportLib.jar
      org.mypackage.HelloWorld
    • or
      set CLASSPATH=D:\myprogram;D:\myprogram\lib\supportLib.jar
      java org.mypackage.HelloWorld
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 默認(rèn)的classpath ORACLE documentation The default class path ...
    xiaofudeng閱讀 1,269評(píng)論 0 1
  • 今天因?yàn)镾pringMVC+Mybatis配置文件的路徑搞了好久, 煩死了,記錄下來(lái). classpath 首先 ...
    tenlee閱讀 5,497評(píng)論 0 1
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • ClassLoader翻譯過(guò)來(lái)就是類(lèi)加載器,普通的java開(kāi)發(fā)者其實(shí)用到的不多,但對(duì)于某些框架開(kāi)發(fā)者來(lái)說(shuō)卻非常常見(jiàn)...
    時(shí)待吾閱讀 1,167評(píng)論 0 1
  • oen【引導(dǎo)】(先關(guān)注我呀! 首先,我們?yōu)榱四軌蚓幾g和運(yùn)行java程序,需要在PATH環(huán)境變量中把java.exe...
    bug體質(zhì)閱讀 5,759評(píng)論 6 16

友情鏈接更多精彩內(nèi)容