??? 開始接觸Java的時候覺得Java虛擬機很麻煩,不明白JRE與JDK的區別是什么?后來搞清楚JRE是個運行環境,JDK是個開發環境。因此寫Java程序的時候需要JDK,而運行Java程序的時候就需要JRE。而JDK里面已經包含了JRE,因此對JAVA_HOME設置為JDK的路徑時也可以正常運行Java程序,但是JDK比較大包括了許多與運行無關的內容,因此運行普通的Java程序無須安裝JDK。
??? 但是用了Eclipse又有了疑問,為什么這個開發環境JRE就可以正常運行呢?其實在Eclipse中內嵌了Java編譯器,并且與JDK中的javac完全相容,因此無須使用JDK也可以直接編譯Java程序。
??? 學習J2EE的時候又開始不明白,為什么Tomcat和Apusic用JRE就可以啟動,Weblogic用JDK才能啟動呢?原因是Tomcat和Apusic 4都已經包括了一個源代碼編譯器,而Weblogic沒有包括這個編譯器包。
??? 那么為什么需要編譯器呢?因為在WEB應用中JSP文件是需要轉換成Servlet,這個Servlet文件還需要編譯成可以在JRE上執行的class文件,因此必須提供有編譯能力的JDK,將JAVA_HOME設置為JDK的路徑就可以了。
??? 那么新出現的Apusic 5.0呢?這個版本為了使大家可以靈活調整JVM的版本,因此不再提供自帶的Java編譯器,而是通過用戶安裝的JDK來完成JSP的編譯工作,這個也就是為什么Apusic 5.0必須通過JDK啟動的原因。