❶ classpath的變數值從什麼地方獲取,path怎麼改,我的電腦是windows10系統的
Windows下java用到的環境變數主要有3個,JAVA_HOME、CLASSPATH、PATH。 JAVA_HOME指向的是JDK的安裝路徑,如C:\JDK_1.4.2,在這路徑下你應該能夠找到bin、lib等目錄。值得一提的是,JDK的安裝路徑可以選擇任意磁碟目錄,不過建議你放的目錄層次淺一點,如果你放的目錄很深,比如C:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx…… 設置方法: JAVA_HOME=C:\JDK_1.4.2 PATH環境變數原來Windows裡面就有,你只需修改一下,使他指向JDK的bin目錄,這樣你在控制台下面編譯、執行程序時就不需要再鍵入一大串路徑了。設置方法是保留原來的PATH的內容,並在其中加上%JAVA_HOME%\bin (注,如果你對DOS批處理不了解,你可能不明白%%引起來的內容是什麼意思;其實這里是引用上一步設定好的環境變數JAVA_HOME,你寫成C:\JDK_1.4.2也是可以的;你可以打開一個控制台窗口,輸入echo %JAVA_HOME%來看一下你的設置結果) : PATH=%JAVA_HOME%\bin;%PATH% 同樣,%PATH%是引用以前你設置的PATH環境變數,你照抄以前的值就行了。 CLASSPATH環境變數我放在最後面,是因為以後你出現的莫名其妙的怪問題80%以上都可能是由於CLASSPATH設置不對引起的,所以要加倍小心才行。 CLASSPATH=.;%JAVA_HOME%\lib\tools.jar 首先要注意的是最前面的".;",如果你看不清,我給你念念——句點分號。這個是告訴JDK,搜索CLASS時先查找當前目錄的CLASS文件——為什麼這樣搞,這是由於LINUX的安全機制引起的,LINUX用戶很明白,WINDOWS用戶就很難理解(因為WINDOWS默認的搜索順序是先搜索當前目錄的,再搜索系統目錄的,再搜索PATH環境變數設定的) ,所以如果喜歡盤根究底的朋友不妨研究一下LINUX。 為什麼CLASSPATH後面指定了tools.jar這個具體文件?不指定行不行?顯然不行,行的話我還能這么羅索嘛!:) 這個是由java語言的import機制和jar機制決定的,你可以查資料解決。 具體的設定方法: win2k\xp用戶右鍵點擊我的電腦->屬性->高級->環境變數,修改下面系統變數那個框里的值就行了。 win9x用戶修改autoexec.bat文件,在其末尾加入: set JAVA_HOME=C:\JDK_1.4.2 set PATH=%JAVA_HOME%\bin;%PATH% set CLASSPATH=.;%JAVA_HOME%\lib\tools.jar 就可以了。
❷ 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的環境變數中是正確的
❹ JAVA環境變數classpath
rt.jar是JAVA基礎類庫,dt.jar是關於運行環境的類庫,tools.jar是工具類庫
classpath的變數值不加是因為他們前面有這段東西 .;%JAVA_HOME%\lib例如 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar後面那段可加可不加,加了其實就是加速java程序搜索tools.jar類庫的速率。不加是,減慢速率而已。因為lib文件夾下麵包括了tool.jar這些等文件。java程序會自動搜索lib文件夾內所有類庫。所以有說加和不加的。
❺ java classpath 如何設置
最簡單的方法是:
set path= D:javajdkin;然後再輸入javac 看看。
❻ 如何獲取classpath下實現某介面的所有類
如果你自己也不知道這個介面有哪些實現類的,採用java默認的ClassLoader是沒有辦法獲得所有實現類的,因為ClassLoader是在程序運行期間才會載入類到static區域,即如果你的程序需要使用某一個class,jvm發現這個class還沒有被ClassLoader載入,就會主動去載入,否則就跳過,你沒辦法知道那些未被載入的實現類。
如果你知道有哪些實現類的話,那就簡單了,自己配置一個xml文件,把實現類的完整類名寫在這個xml文件,再寫一個解析程序,迭代每一個類名,直接用Class.forName載入就可以了。
甚至你可以去解析所有的java源文件或class文件,像eclipse之類的IDE就是這么乾的,它管理工程下的所有class,解析這些class,這樣我們寫程序的時候,才有代碼提示之類的功能。
如果你純粹只想知道這個介面的實現類,在eclipse裡面選中介面,按下F4,eclipse會為你列出所有的實現類
❼ java的環境變數classpath該怎麼設置呢
java的環境變數classpath的設置方法:
1、在我的電腦界面,滑鼠右鍵點擊「此電腦」。
❽ java如何獲取classpath中某文件的輸出流
InputStream is = this.getClass().getResourceAsStream("/文件相對路徑");
(Stringname)查找具有給定名稱的資源。查找與給定類相關的資源的規則是通過定義類的classloader
實現的。此方法委託此對象的類載入器。如果此對象通過引導類載入器載入,則此方法將委託給ClassLoader.getSystemResourceAsStream(java.lang.String)。
在委託前,使用下面的演算法從給定的資源名構造一個絕對資源名:
如果name以'/'開始('u002f'),則絕對資源名是'/'
後面的name的一部分。
否則,絕對名具有以下形式:
modified_package_name/name其中modified_package_name是此對象的包名,該名用'/'取代了'.'
('u002e')。有問題再追問,goodluck!
❾ java 怎麼獲取classpath列表
環境變數里有classpath,也可用通過java的運行參數 -cp把classpath設上去。