JAVA運行環境 和 Java Applet的運行環境 的區別


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目錄是不行的,必須要滿足:

  1. 用JRE安裝程序包進行安裝
  2. JRE版本為 web瀏覽器提供了Java Plugin
  3. 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程序:
 
對於一般用戶,安裝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安裝程序:
 
附錄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代碼 復制代碼  收藏代碼
  1. public class HelloApplet extends Applet {  
  2.   
  3.     private static final long serialVersionUID = 5511892956119084309L;  
  4.   
  5.     @Override  
  6.     public void init() {  
  7.         Graphics g = this.getGraphics();  
  8.         paint(g);  
  9.     }  
  10.   
  11.     public void paint(Graphics g) {  
  12.         g.drawString("Hello Applet!", 45, 45);  
  13.     }  
  14. }  
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代碼 復制代碼  收藏代碼
  1. CMD>javac HelloApplet.java  
CMD>javac HelloApplet.java

 

3. 在index.html網頁中嵌入Applet小程序

Html代碼 復制代碼  收藏代碼
  1. ...  
  2. <applet alt="" code="cn.david.applet.HelloApplet.class" archive="applet-1.0.0-SNAPSHOT.jar"  width="200" height="200"   
  3. codebase=".">  
  4. </applet>  
  5. ...  
...
<applet alt="" 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代碼 復制代碼  收藏代碼
  1. CMD>appletviewer index.html  
CMD>appletviewer index.html

 

5. 在web瀏覽器中運行Applet小程序

 將網頁拖到瀏覽器中查看,或將網頁和Applet小程序部署到Apache的HTML文檔目錄下通過URL訪問。

 

原文地址 http://yyjlinux.iteye.com/blog/1702514


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM