⑴ java中PATH和CLASSPATH的區別與配置
java中PATH和CLASSPATH的區別與配置
path:用 來指定 java 虛擬機(JVM) 所在在目錄,也就是我們最常用的用來編譯java源程序的javac.exe 和用來執行 *.class 文件的 java.exe 這兩個命令。以我的機器為例吧:我的 jdk 按裝目錄為 D:/jdk1.5.0_08(確切的說我的這個JDK不是安裝版本的,直接解壓到 d:/ 下的 ,此時我的 path 就要這樣設 path=D:/jdk1.5.0_08;D:/jdk1.5.0_08/bin;),設置好了後就可以在命令行中輸入 javac , 與 java 命令了,如果這時能列印出命令的 help 文檔就說明 path 設置正確了。
classpath:用 來指定我們自己所寫的或要用到的類文件(.jar文件) 所在的目錄,這里有一個小情況:比如我的classpath一開始沒有設定,而我的java類文件所在的目錄為: d:/javalesson/lesson1 這個文件夾中,此時我把我的命令行窗口所在的目錄設置為 d:/javalesson/lesson1(也就是我的類文件所存放的目錄) ,這時如果運行某個 .class 文件是一定能找到的。這時我開始設置 classpath 這個目錄,比如我設置為 classpath=c:/abc 這個目錄,這時我的命令行窗口所在的目錄沒修改仍然為: d:/javalesson/lesson1 (也就是我的類文件所存放的目錄,沒有改變) , 再運行 java 時就會發生 找不到某某類這樣的錯誤,這是因為你只要設置了 classpath 這個環境變數系統就不會再在當前目錄下查詢某個類了,所以會發生某某類找不到這樣的錯誤,如果你要既要讓系統在 classpath所指定的目錄中去找某個類,又要讓系統在當前目錄下查詢某個類,這時你只要讓你的 classpath 中多一個 「.」 就可以了,例如:classpath=c:/abc;. 這時你的目錄即使在d:/javalesson/lesson1 ,也會找到類文件的。
配置:系統變數是環境變數的一種,環境變數一種僅本用戶適用,另一種即系統變數整個系統的用戶都適用,兩者都可以在使用應用程序時提供快捷.一般在編輯java文件或者C#文件時需要修改,設計到多個文件夾之間的切換時也可以根據自己的需要設置.
簡單的說就是,如果設置系統變數和用戶變數,都叫做設置環境變數,設置系統變數時,該系統的所有帳號的用戶都可以使用,但是設置用戶變數時,其他的帳號登陸時就不一定可以使用。 現在出來的jdk的最新版本為jdk1.7。
下面以java環境變數為例設置方法:
1、如果是Win95/98,在\autoexec.bat的最後面添加如下3行語句:
JAVA_HOME=c:\j2sdk1.4.1
PATH=%JAVA_HOME%\bin;%PATH%
CLASSPATH=.;%JAVA_HOME%\lib
看好了CLASSPATH中第一個".",這個代表當前目錄(現在95,98用的很少了吧)
2、如果是Win2000或者XP,使用滑鼠右擊"我的電腦"->屬性->高級->環境變數
JAVA_HOME=你JDK的根目錄
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
path=%JAVA_HOME%\bin
CLASSPATH前面的那個"."和上面的意義是一樣的。
3、如果是Linux用戶
在你的環境中,通常我加在.bashrc文件中,你可以加在你的Profile文件中。
/usr/local/jdk 為你安裝jdk的目錄。
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
⑵ 如何用classpath編譯java
classpath只跟java運行有關,跟編譯無關,比如你在命令行運行一個.class文件 classpath就是指明.class文件的目錄; 比如你有個 Hello.class文件在D盤,而你當前工作壞境在C盤,你要用java命令運行該文件:java classpath D:\Hello.class
⑶ java classpath 如何設置
最簡單的方法是:
set path= D:javajdkin;然後再輸入javac 看看。
⑷ 在Java程序設計中,設置環境變數path和classpath的作用分別是什麼
path和classpath的作用分別是:
1、PATH環境變數。
作用是指定命令搜索路徑,在i命令行下面執行命令如javac編譯java程序時,它會到PATH變數所指定的路徑中查找看是否能找到相應的命令程序。
需要把jdk安裝目錄下的bin目錄增加到現有的PATH變數中,bin目錄中包含經可執行文件javac/java/javadoc等待,設置PATH變數後,就可以在任何目錄下執行javac/java等工具了。
2、CLASSPATH環境變數。
作用是指定類搜索路徑,要使用已經編寫好的類,前提當然是能夠找到它們了,JVM就是通過CLASSPTH來尋找類的。
需要把jdk安裝目錄下的lib子目錄中的dt.jar和tools.jar設置到CLASSPATH中,當然,當前目錄「.」也必須加入到該變數中。
新版的軟體,classpath沒有什麼用了,因為在安裝的時候已經選了JDK而且可以添加
3、JAVA_HOME環境變數。
它指向jdk的安裝目錄,Eclipse/NetBeans/Tomcat等軟體就是通過搜索JAVA_HOME變數來找到並使用安裝好的jdk。
⑸ JAVA 的classpath
classpath指的是Java進行編譯,運行時需要用到的jar包位置.
一般設置為classpath= ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar"就可以了
注意是 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
最前面有個點,不要把點漏了。
下面是網上摘的一些比較好的講解,希望對你有所幫助:
CLASSPATH環境變數。作用是指定命令搜索路徑,在命令行下面執行命令如javac編譯java程序時,它會到PATH變數所指定的路徑中查找看是否能找到相應的命令程序。我們需要把jdk安裝目錄下的bin目錄增加到現有的PATH變數中,bin目錄中包含經常要用到的可執行文件如javac/java/javadoc等待,設置好PATH變數後,就可以在任何目錄下執行javac/java等工具了。
CLASSPATH是什麼?它的作用是什麼?
它是javac編譯器的一個環境變數。
它的作用與import、package關鍵字有關。
當你寫下improt java.util.*時,編譯器面對import關鍵字時,就知道你要引入java.util這個package中的類;但是編譯器如何知道你把這個package放在哪裡了呢?所以你首先得告訴編譯器這個package的所在位置;如何告訴它呢?就是設置CLASSPATH啦 :) 如果java.util這個package在c:\jdk\ 目錄下,你得把c:\jdk\這個路徑設置到CLASSPATH中去!當編譯器面對import java.util.*這個語句時,它先會查找CLASSPATH所指定的目錄,並檢視子目錄java\util是否存在,然後找出名稱吻合的已編譯文件(.class文件)。如果沒有找到就會報錯!
CLASSPATH有點像c\c++編譯器中的INCLUDE路徑的設置哦,是不是?當c\c++編譯器遇到include <iostream>這樣的語句,它是如何運作的?哦,其實道理都差不多!搜索INCLUDE路徑,檢視文件!
當你自己開發一個package時,然後想要用這個package中的類;自然,你也得把這個package所在的目錄設置到CLASSPATH中去!
CLASSPATH的設定,對JAVA的初學者而言是一件棘手的事。所以Sun讓JAVA2的JDK更聰明一些。你會發現,在你安裝之後,即使完全沒有設定CLASSPATH,你仍然能夠編譯基本的JAVA程序,並且加以執行。
⑹ java的環境變數classpath該怎麼設置呢
java的環境變數classpath的設置方法:
1、在我的電腦界面,滑鼠右鍵點擊「此電腦」。
⑺ java中classpath如何配置
java中classpath的配置方法如下:
我的電腦(計算機)-右擊屬性-高級-環境變數-系統變數-新建JAVA_HOME,classpath,path
變數名
JAVA_HOME
變數值
D:\Program Files\Java\jdk1.6.0_10
變數名
classpath
變數值
;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
變數名
path
變數值
%JAVA_HOME%\bin;
jdk6以後的版本都不用再配CLASSPATH,而且也不建議去配。
理論上java安裝完一個變數都不需要配置,只不過為了命令行敲起來方便,所以通常會把jdk/bin目錄下加入到path變數中。
⑻ 關於java中的classpath
你好,不是輸入classpath,正確如下
首先介紹一下環境變數的設置方法:(這里以jdk1.6來安裝,其他版本一樣)在把jdk安裝到計算機中之後,我們來進行設置使java環境能夠使用。
首先右鍵點我的電腦。打開屬性。然後選擇「高級」裡面的「環境變數」,在新的打開界面中的系統變數需要設置三個屬性「JAVA_HOME」、「path」、「classpath」,其中在沒安裝過jdk的環境下。path屬性是本來存在的。而JAVA_HOME和classpath是不存在的。
點「新建」,然後在變數名寫上JAVA_HOME,顧名其意該變數的含義就是java的安裝路徑,呵呵,然後在變數值寫入剛才安裝的路徑「C:/jdk1.6」。(註:
如果安裝的路徑不是磁碟C或者不是在jdk1.6這個文件夾,可對應修改。以下文字都是假定安裝在C:/jdk1.6裡面。)
其次在系統變數裡面找到path,然後點編輯,path變數的含義就是系統在任何路徑下都可以識別java命令,則變數值為「.;%JAVA_HOME%/bin」,(其中「%JAVA_HOME%」的意思為剛才設置JAVA_HOME的值),也可以直接寫上「C:/jdk1.6/bin」
最後再點「新建」,然後在變數名上寫classpath,該變數的含義是為java載入類(class or
lib)路徑,只有類在classpath中,java命令才能識別。其值為「.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/toos.jar
(要加.表示當前路徑)」,與相同「%JAVA_HOME%有相同意思」
以上三個變數設置完畢,則按「確定」直至屬性窗口消失,下來是驗證看看安裝是否成功。先打開「開始」->「運行」,打入「cmd」,進入dos系統界面。然後打「java
-version」,如果安裝成功。系統會顯示java version jdk"1.6.0"。
確保安裝在C盤文件名為jdk1.6,環境變數直接復制就可以了
,在dos界面中輸入javac來查看該命令是否合法,同樣輸入java來查看該命令是否合法
這樣環境變數就設置好了,下面進行對PATH,CLASSPTH,JAVA_HOME的講解以下為置JAVA_HOME,CLASSPATH,PATH的目的:
1,設置JAVA_HOME:
一、為了方便引用,比如,你JDK安裝在C:/Program Files/Java/jdk1.6.0目錄里,則設置JAVA_HOME為該目錄路徑,
那麼以後你要使用這個路徑的時候, 只需輸入%JAVA_HOME%即可, 避免每次引用都輸入很長的路徑串;
二、歸一原則,
當你JDK路徑被迫改變的時候, 你僅需更改JAVA_HOME的變數值即可, 否則,你就要更改任何用絕對路徑引用JDK目錄的文檔, 要是萬一你沒有改全,
某個程序找不到JDK, 後果是可想而知的----系統崩潰!
三、第三方軟體會引用約定好的JAVA_HOME變數, 不然,
你將不能正常使用該軟體, 以後用JAVA久了就會知道, 要是某個軟體不能正常使用, 不妨想想是不是這個問題.
2,設置CLASSPATH:
這是一個很有趣,當然也比較折磨初學者的問題, 這個變數設置的目的是為了程序能找到相應的".class"文件, 不妨舉個例子:
你編譯一個JAVA程序---A.java, 會得到一個A.class的類文件,你在當前目錄下執行java A, 將會得到相應的結果(前提是你已經設置CLASSPATH為"."). 現在, 你把A.class移到別的目錄下(例如:"e:/"), 執行java A,
將會有NoClassDefFindError的異常,原因就是找不到.class文件, 現在你把CLASSPATH增加為:".;e:/"再運行java A,
看看會有什麼結果~~:)~~~, 一切正常, java命令通過CLASSPATH找到了.class文件!
3,設置PATH:
道理很簡單, 你想在任何時候都使用%JAVA_HOME%/bin/java 等來執行java命令嗎, 當然不會, 於是, 你可以選擇把
%JAVA_HOME%/bin添加到PATH路徑下, 這樣,
我們在任何路徑下就可以僅用java來執行命令了.(當你在命令提示符窗口輸入你個代碼時,操作系統會在當前目錄和PATH變數目錄里查找相應的應用程序, 並且執行.)
======================錯誤案例NoClassDefFound:
當 Java 虛擬機或 ClassLoader
實例試圖在類的定義中載入(作為通常方法調用的一部分或者作為使用new 表達式創建的新實例的一部分),但無法找到該類的定義時,拋出此異常。
問題出在你環境變數設置錯誤:
上述樓主把C:/Program
Files/Java/jdk1.5.0_11/lib/dt.jar;C:/Program
Files/Java/jdk1.5.0_11/jre/lib/rt.jar放在classpath的環境變數中是正確的