windows中的path系统变量和java中的ClassPath环境变量。

在windows中设定path是告诉系统可执行文件是放在什么路径上面。

设定ClassPath是告诉jvm 要使用或执行的class放在什么路径上。

拿我自己机子为例。

JAVA_HOME=C:/j2sdk1.4.2_06  //我安装jdk的路径。

ClassPath=.;%JAVA_HOME%/lib;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
//jdk中自带的一些工具包。注意.;很重要他告诉jvm从当前目录找。 这个并不象windows,windows默认就是先从当前目录找

Path=%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;C:/Program Files/ATI Technologies/ATI Control Panel;C:/Program Files/Microsoft SQL Server/80/Tools/BINN;%JAVA_HOME%/bin

//我在最后面加上了;%JAVA_HOME%/bin  这个是java.exe javac.exe 等等java可执行文件放的路径。因为windows会先在当前目录中找可运行文件,当没有找到的话便会在Path目录中找。这就是为什么我们要把%JAVA_HOME%/bin加到Path的原因了, 现在我们就可以到任何地方运行java javac了。

在较新版的sdk中并不需要在classpath中设定sdk原有的class或jar路径。程序已经帮你设定好了,你只需要添加一些其他的包就好了。

轉錄自java連線版

作者: TAHO (癡人) 看板: java
標題: PATH & CLASSPATH
時間: Mon Jan 28 23:18:06 2002

看來這個問題又開始出現了

如果有用過 DOS 系統的人 應該可以瞭解 PATH 是在幹嘛的
這個 PATH 並不是給 Java 用的
早在沒有 Windows 的 DOS 時代 就有這個東西了.....
因為 DOS 沒有所謂的 "捷徑"
所以如果你要執行程式 那你必須給他 "完整路徑"
除非那個程式是在使用者的正處於的目錄

比如說 c:/windows/commands/edit.exe
如果你在
C:/windows/commands> edit
這樣當然可以
如果你是在
C:/> edit
他就會跟你說 找不到這個 edit.exe
因為這檔案不在 C:/ 底下
你也不能期望電腦會把你所有硬碟目錄全部都搜尋一遍 找出可能的檔案
如果這樣 那過不了多久你的硬碟可以就開始壞軌了
所以你必須打完整路徑
C:> c:/windows/commands/edit
但是每次都這樣打實在太麻煩~~
所以就發明了一個 "系統變數",也就是 OS 會去使用的設定
只要這樣設定 PATH=C:/windows/commands/
那不論你在哪裡打 edit,他會先去找目前目錄底下有沒有這個程式
如果沒有 就去 PATH 的路徑找....
當然 不只有 edit,只要是打任何指令 在目前目錄底下找不到的
他就會去 PATH 設定的地方找
所以你瞭解為什麼要設定到 JDK 的 bin 目錄底下嗎?
因為 java.exe 跟 javac.exe 等等指令都在這目錄底下
所以你安裝完 JDK 之後有三種選擇可以執行命令
1. 直接到 javac.exe java.exe 所在的目錄底下去打指令 (麻煩...)
2. 每次打命令都打完整路徑 (通常很長....)
3. 設定系統變數 PATH 到 JDK 的 bin 目錄

同樣的所謂的 JVM 就好像是 OS 上面再啟動一個 OS
對 JVM 來說 CLASSPATH 就好像是對 OS 來說的 PATH
JVM 是由 java.exe 這個程式啟動的
而且別忘了 java.exe 並不是在使用者的路徑下
所以他會去 java.exe 所在的目錄底下去找 .class 檔
除非你的 .class 檔放在跟 java.exe 同一個目錄
否則他是找不到 .class 在哪裡的....
所以我們要設定一個路徑 讓 JVM 可以去這個路徑尋找你要他執行的 .class
所以你一樣有三種方法可以執行
1. 把所有的 .class 都放到 java.exe 的相對目錄底下 ( 很難管理... )
2. 每次都打完整路徑, 也就是使用 -cp 的選項
比如 java -cp .;c:/myclass/ Test
(其中那個句點 . 表示使用者打這個指令時 所在的目錄)
(常打的話很煩 ... )
3. 設定系統變數 CLASSPATH 到你的 class 的位置

至於系統變數怎麼設定 那要看你在那個平台 依據平台的設定
( 當然 系統變數不只這兩個, 就算你都沒有去設定
通常安裝完 OS, OS 就會預設一堆系統變數
你只是多手動的加了兩個 )

當然你都不設定也是可以~~
只是很麻煩
比如說你安裝的路徑是
C:/JDK1.3.1/
D:/myclass/Test.class
其中 Test 用到 E:/extclass/Util.class
那你每次執行要打
c:/JDK1.3.1/bin/java -cp e:/extclass;d:/myclass Test
如果你不嫌煩的話 不用設定也是無所謂啦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值