關於javac和java

來源:互聯網
上載者:User

標籤:ack   jstack   home   應用程式   變數   classpath   內建   擴充   安裝jdk   

1、為什麼安裝完jdk後不配置環境變數就能直接運行java,而不能運行javac

  在安裝jdk的時候jdk會內建一個jre(java運行環境),還會單獨安裝一個jre,預設路徑是和jdk在同級目錄,而且會將這個jre/bin/java.exe拷貝一份到C:\Windows\System32\目錄中,而這個目錄在系統安裝的時候就被配置到了環境變數中,所以能運行java。

  不能運行javac是因為javac.exe是位於%JAVA_HOME%\bin目錄下面,這個可執行檔沒有被配置到環境變數PATH中;

2、為什麼配置CLASSPATH系統變數

  CLASSPATH系統變數為類尋找路徑

    1、在使用javac進行編譯時間遇到import時候就會通過這個變數裡面配置的路徑去尋找。如果配置的是目錄,則會尋找目錄下的.class或.java(.java會自動編譯出.class)的類檔案,如果是.jar檔案,則會引用.jar中的類,也可以通過javac -cp 進行指定CLASSPATH

    2、使用java運行java程式的時候import類的尋找順序為

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

      jre/lib/ext子孫目錄中的.class和子檔案中的*.jar檔案,或者由java.ext.dirs系統變數指定的目錄和檔案(擴充類載入器載入)

      CLASSPATH中配置目錄的子孫目錄中的.class和配置的.jar中的類(應用程式類載入器載入)

3、問什麼CLASSPATH配置 “.;” 和;tools.jar   

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

關於javac和java

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.