1. 程式人生 > >JAVA環境配置詳解

JAVA環境配置詳解

指向 微軟 ssp cep 解釋 引入 bin testcase loader

步驟:一下載安裝JDK(註意版本)二配置環境變量 JAVA_HOME:JDK的安裝路徑
CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
PATH:.;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin



JAVA環境配置總結: JDK:一般有bin,include,jre,lib 一、環境變量: 在系統環境變量中添加D:\JDK\bin和D:\JDK\jre\bin 新建系統變量CLASSPATH值為:.(在cmd中執行命令java Classname時的查找路徑) 查看:java,javac,java -version 二、JAVA文件加載 java是通過java虛擬機來解釋運行的,也就是通過java命令,javac編譯生成的.class文件,就是虛擬機要執行的代碼, 稱之 為字節碼(bytecode), 虛擬機通過 classloader來裝載這些字節碼。 classloader 從哪裏知道java本身的類庫及用戶自己的類在什麽地方呢? 一缺省值(當前路徑) 二有一個用戶指定的變量來表明,這個變量就是類路徑(classpath) 三在運行的時候傳參數給虛擬機。 編譯的過程和運行的過程大同小異,只是一個是找出來編譯,另一個是找出來裝載。 實際上java虛擬機是由java luncher初始化的,也就是java(或java.exe)這個程序來做的。 虛擬機按以下順序搜索並裝載所有需要的類: 一引導類: 組成 java 平臺的類, 包含 rt.jar 和 i18n.jar 中的類 二擴展類: 使用 java 擴展機制的類, 都是位於擴展目錄($JAVA_HOME/jre/lib/ext)中的.jar檔案包 三用戶類: 開發者定義的類或者沒有使用java擴展機制的第三方產品。你必須在命令行中使用-classpath選項 或者使用CLASSPATH 環境變量來確定這些類的位置. 一般來說,用戶只需指定用戶類的位置,引導類和擴展類是"自動"尋找的。 用戶類具體怎麽找的?其可能的來源有: 一".", 即當前目錄, 這個是缺省值. 二CLASSPATH環境變量, 一旦設置, 將缺省值覆蓋. 三命令行參數 -cp 或者 -classpath, 一旦指定, 將上兩者覆蓋. 四由 -jar 參數指定的 .jar 檔案包, 就把所有其他的值覆蓋, 所有的類都來自這個指定的檔案包中. 進入類所在的目錄 使用參數-cp或-classpath 編寫腳本 如果你發現正確安裝後, 不能正常工作, 就把tools.jar 加入 CLASSPATH, 試一下 三、參數-cp和-classpath (1).絕對路徑:javac -classpath c:/junit3.8.1/junit.jar Xxx.java (2).相對路徑:javac -classpath ../junit3.8.1/Junit.javr Xxx.java (3).系統變量:javac -classpath %CLASSPATH% Xxx.java (註意:%CLASSPATH%表示使用系統變量CLASSPATH的值進行查找) java -classpath的使用: java:假設我們的CLASSPATH設置為:D:\java ,在該目錄下有三個文件: HelloWorld.java :public class HelloWorld HelloWorldExtendsHelloWorld.java :public class HelloWorldExtendsHelloWorld extends HelloWorld HelloWorldExtendsTestCase.java:public class HelloWorldExtendsTestCase extends junit.framework.TestCase 假設我們已經按照上面關於javac -classpath和javac 絕對路徑的使用,順利地完成了三個文件地編譯。 現在我們在C:/Documents and Settings/peng>目錄下執行這三個.class文件 (1).C:\duan>java HelloWorld Hello World 在系統變量CLASSPATH中指向了目錄:D:\java 所以JVM會默認去該目錄下加載類文件,而不需要指定.class文件的絕對路徑了。 (2).C:\duan>java HelloWorldExtendsHelloWorld Hello World HelloWorldExtendsHelloWorld繼承了HelloWorld類,所以在執行時JVM會先查找在CLASSPATH下是 否存在一個HelloWorld.class文件,因為我們已經成功編譯了HelloWorld 類了,所以可以成功 執行HelloWorldExtendsHelloWorld.class (3).C:\duan>java HelloWorldExtendsTestCase Exception in thread "main" java.lang.NoClassDefFoundError: junit/framework/TestCase 提示找不到junit.framework.TestCase文件。因為:junit.framework.TestCase.class文件並不存在於當前目錄下(存在%CLASSPATH%\test),所以 為了能夠讓程序成功運行,必須通過指定CLASSPATH的方式,讓JVM可以找到junit.framework.TestCase這個類。 (4). C:\duan>java -classpath %CLASSPATH%\test HelloWorldExtendsTestCase Hello World 總結: (1)何時需要使用-classpath:當你要編譯或執行的類引用或繼承了其它的類,但被引用類的.class文件不在當前目錄下時,就 需要通過-classpath來引入類 (2)何時需要指定路徑:當你要編譯的類所在的目錄和你執行javac命令的目錄不是同一個目錄時,就需要指定源文件的 路徑(CLASSPATH是用來指定.class路徑的,不是用來指定.java文件的路徑的)

JAVA環境配置詳解