標籤:
Java小程式,也就是Java Applet,可以在Web瀏覽器中運行。Java Applet必須以<applet>指令碼的形式嵌入到HTML頁面中,才能在web瀏覽器中運行。
之前總以為本地安裝了JDK,指定好JAVA_HOME和PATH環境變數,所有的Java程式就都可以運行了,後來有個同事讓我幫他解決web瀏覽器中不能運行一個專案管理軟體的甘特圖時,才發現Java Applet和一般的Java應用的運行環境配置是不一樣的。
在Windows上運行Java應用程式,只要有JDK的二進位目錄,並指定好JAVA_HOME和PATH就可以直接使用了,並不需要通過JDK的安裝程式安裝。所以,可以將安裝好的JDK目錄打個壓縮包備份起來,以後重裝系統或是給其他機器裝Java環境時,直接將JDK的二進位壓縮包拷貝過去,解壓後就可以直接使用了。
但在Windows中,配置Java Applet的運行環境,僅指定JDK目錄是不行的,必須要滿足:
- 用JRE安裝程式包進行安裝
- JRE版本為 web瀏覽器提供了Java Plugin
- JRE與Web瀏覽器的位長要一致,如都是32位,或都是64位的軟體版本
這是因為,JRE安裝時會將Java相關的資訊寫到註冊表中,並為Web瀏覽器安裝Java Plugin。Web瀏覽器的Java Plugin在運行Applet時,先會到Windows註冊表中讀取Java資訊,再執行Applet程式。 這裡要注意的是,JRE的版本不同,所支援的web瀏覽器和版本也不同。我原生Web瀏覽器有IE8, Firefox16, Chrome19,安裝JRE6u11後,只有IE8可以運行Applet;Firefox16下通過about:plugins可以看到有安裝的Java Plugin,但無法運行Applet;而Chrome19下則顯示沒有Java Plugin。而安裝JRE7u9後,所有的瀏覽器就都能運行Applet了。所以,最簡單的話只需安裝最新的JRE版本就行了。通常如果瀏覽器沒有安裝Java Plugin,在運行有Applet的網頁時,會提示使用者安裝外掛程式,一般直接安裝後就可以了。 Java Tester這個網站,用於檢查本地安裝的JRE版本和軟體廠商,同時可以檢查Web瀏覽器是否可以運行Applet程式:Java Tester - What Version of Java Are You Using? 對於一般使用者,安裝Applet運行環境是很簡單的,但有時恰恰是Java開發人員的瀏覽器反而運行不了Applet,這就有點寒磣了。Java開發人員本機上往往會安裝多個Java版本,有時直接將JDK目錄移動或刪除了,沒通過Windows控制台進行卸載,造成Windows註冊表中還有殘留的Java安裝資訊,運行Java應用沒問題,但在Web瀏覽器中Java Plugin就找不到JRE來執行Applet了。 安裝JRE後,Java控制台上會出現一個Java表徵圖,如果發現Java的表徵圖顯示不出來了,點擊時提示找不到程式,如: 上面無法顯示的Java表徵圖,說明Windows上的JRE環境已經找不到了,需要重新安裝JRE。正常可用的JRE環境,如: 點擊Java表徵圖,可以開啟Java控制台(javacpl),說明Windows上的JRE已經是可用的了。 綜上,Java應用和Java Applet對運行環境的要求是不一樣的。Java應用運行時,不需要找註冊表,只要指定好JDK目錄就能運行。而對於Applet小程式,Web瀏覽器中的Java Plugin要通過註冊表來尋找JRE環境,運行Java Applet。 因此,建議本地Java環境:
- 安裝一個高版本的JRE,用於支援較新的Web瀏覽器運行Applet小程式
- Java應用所需要的JDK,直接拷貝JDK二進位目錄使用,不需要安裝,多個JDK可並存,執行時確定使用JDK版本。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
附錄1:如果無法重裝JRE,可以按下面文章中的步驟,先清除註冊表中的Java殘留安裝資訊,再運行JRE安裝程式:如何清除註冊表中的Java安裝資訊?
附錄2:如何在Web瀏覽器中啟用 Java?(必須滿足JRE已安裝可用,且web瀏覽器已安裝了Java Plugin的前提)
http://www.java.com/zh_CN/download/help/enable_browser.xml
附錄3:Hello Applet
1. 編寫Applet小程式,繼承Applet基類:
Java代碼
- public class HelloApplet extends Applet {
-
- private static final long serialVersionUID = 5511892956119084309L;
-
- @Override
- public void init() {
- Graphics g = this.getGraphics();
- paint(g);
- }
-
- public void paint(Graphics g) {
- g.drawString("Hello Applet!", 45, 45);
- }
- }
public class HelloApplet extends Applet { private static final long serialVersionUID = 5511892956119084309L; @Override public void init() { Graphics g = this.getGraphics(); paint(g); } public void paint(Graphics g) { g.drawString("Hello Applet!", 45, 45); }}
2. 編譯Applet
Java代碼
- CMD>javac HelloApplet.java
CMD>javac HelloApplet.java
3. 在index.html網頁中嵌入Applet小程式
Html代碼
- ...
- <applet alt="" code="cn.david.applet.HelloApplet.class" archive="applet-1.0.0-SNAPSHOT.jar" width="200" height="200"
- codebase=".">
- </applet>
- ...
...<applet code="cn.david.applet.HelloApplet.class" archive="applet-1.0.0-SNAPSHOT.jar" width="200" height="200" codebase="."></applet>...
注意:
- Applet小程式必須嵌入到網頁中才能運行,使用<applet></applet>標籤嵌入Applet
- code屬性指定Applet類
- archive屬性指定小程式所在的jar包,如果沒有打包可省略
- codebase屬性指定用於尋找Applet類和Jar包的根目錄,這個目錄是相對於網頁所在目錄而言的,即指定一個相對目錄。codebase=".",表示,在網頁目錄下尋找Applet小程式。
- 網頁中要使用<applet></applet>標籤,使用<applet />時在網頁中可正常運行,但在appletviewer中無法顯示applet視窗。
4. 用appletviewer測試Applet小程式
Java代碼
- CMD>appletviewer index.html
CMD>appletviewer index.html
5. 在web瀏覽器中運行Applet小程式
將網頁拖到瀏覽器中查看,或將網頁和Applet小程式部署到Apache的HTML文檔目錄下通過URL訪問。
原文地址 http://yyjlinux.iteye.com/blog/1702514
JAVA運行環境 和 Java Applet的運行環境 的區別