關於javac和java

一、爲何安裝完jdk後不配置環境變量就能直接運行java,而不能運行javacjava

  在安裝jdk的時候jdk會自帶一個jre(java運行環境),還會單獨安裝一個jre,默認路徑是和jdk在同級目錄,並且會將這個jre/bin/java.exe拷貝一份到C:\Windows\System32\目錄中,而這個目錄在系統安裝的時候就被配置到了環境變量中,因此能運行java。api

  不能運行javac是由於javac.exe是位於%JAVA_HOME%\bin目錄下面,這個可執行文件沒有被配置到環境變量PATH中;工具

二、爲何配置CLASSPATH系統變量spa

  CLASSPATH系統變量爲類查找路徑資源

    一、在使用javac進行編譯時遇到import時候就會經過這個變量裏面配置的路徑去查找。若是配置的是目錄,則會查找目錄下的.class或.java(.java會自動編譯出.class)的類文件,若是是.jar文件,則會引用.jar中的類,也能夠經過javac -cp 進行指定CLASSPATH編譯

    二、使用java運行java程序的時候import類的查找順序爲class

      jre/lib中的*.jar,或被-Xbootclasspath參數指定的路徑中的.jar(由啓動類加載器加載)import

      jre/lib/ext子孫目錄中的.class和子文件中的*.jar文件,或者由java.ext.dirs系統變量指定的目錄和文件(擴展類加載器加載)變量

      CLASSPATH中配置目錄的子孫目錄中的.class和配置的.jar中的類(應用程序類加載器加載)擴展

三、問什麼CLASSPATH配置 「.;」 和;tools.jar   

  配置CLASSPATH的開頭使用.;表示在使用java或javac優先從當前目錄查找類資源;tools.jar 是系統用來編譯一個類的時候用到的,jps,javap,jstat,jstack等Java工具也使用到了tools.jar中的一些api,其實使用javac命令進行編譯的時候已經封裝了tools.jar,因此能夠不用配置到CLASSPATH中;

相關文章
相關標籤/搜索