国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

給 Java SE 注入腳本語言的活力

2019-11-18 15:26:29
字體:
來源:轉載
供稿:網友

2006 年 10 月 30 日

     在即將發布的 java SE6(Mustang)中,增加了對腳本語言的支持。通過對腳本語言的調用,使得一些通常用 Java 比較難于實現的功能變得簡單和輕便。腳本語言與 Java 之間的互操作將變得優雅而直接。

腳本語言與 Java

     假設我們有一個簡單的需求,察看一份文檔中 5 個字母組成的單詞的個數。用 Java 一般實現如下:

import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class Find5Words {    public static void main(String[] args) throws IOException {        String result = "";        String line = null;        int num = 0;        FileReader fr = new FileReader("filename");        BufferedReader br = new BufferedReader(fr);        while ((line = br.readLine()) != null) {            result += line;        }        br.close();        fr.close();        String[] s = result.split(" ");        for (int i = 0; i < s.length; i++) {            if (s[i].matches("^//w{5}$")) {                num++;            }        }        System.out.PRintln(num);    }}

再看看 Perl 語言實現同樣功能的代碼:

open FILE, "<filename ";while (<FILE>) {     for (split) {         $num++ if /^/w{5}$/     } }print $num;

     那么有沒有一種優雅的方式將 Java 與腳本語言結合呢,在今年秋季即將發布的 Java SE6(代號 Mustang)中,這將成為現實。

Mustang 的腳本引擎

     JSR 233 為 Java 設計了一套腳本語言 API。這一套 API 提供了在 Java 程序中調用各種腳本語言引擎的接口。任何實現了這一接口的腳本語言引擎都可以在 Java 程序中被調用。在 Mustang 的發行版本中包括了一個基于 Mozilla Rhino 的 javascript 腳本引擎。

Mozilla Rhino

Rhino 是一個純 Java 的開源的 Javascript 實現。他的名字來源于 O'Reilly 關于 JavaScript 的書的封面:

給 Java SE 注入腳本語言的活力(圖一)

     Rhino 項目可以追朔到 1997 年,當時 Netscape 計劃開發一個純 Java 實現的 Navigator,為此需要一個 Java 實現的 JavaScript —— Javagator。它也就是 Rhino 的前身。起初 Rhino 將 JavaScript 編譯成 Java 的二進制代碼執行,這樣它會有最好的性能。后來由于編譯執行的方式存在垃圾收集的問題并且編譯和裝載過程的開銷過大,不能滿足一些項目的需求,Rhino 提供了解釋執行的方式。隨著 Rhino 開放源代碼,越來越多的用戶在自己的產品中使用了 Rhino,同時也有越來越多的開發者參與了 Rhino 的開發并做出了很大的貢獻。如今 Rhino1.6R2 版本將被包含在 Java SE6 中發行,更多的 Java 開發者將從中獲益。

Rhino 提供了如下功能

  • 對 JavaScript 1.5 的完全支持
  • 直接在 Java 中使用 JavaScript 的功能
  • 一個 JavaScript shell 用于運行 JavaScript 腳本
  • 一個 JavaScript 的編譯器,用于將 JavaScript 編譯成 Java 二進制文件

 

支持的腳本語言

     在dev.java.net可以找到官方的腳本引擎的實現項目。這一項目基于BSD License ,表示這些腳本引擎的使用將十分自由。目前該項目已對包括 Groovy, JavaScript, Python, Ruby, php 在內的二十多種腳本語言提供了支持。這一支持列表還將不斷擴大。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九龙坡区| 都昌县| 五台县| 邵阳市| 玉林市| 崇州市| 大埔县| 静海县| 怀来县| 洪湖市| 北海市| 南乐县| 灵寿县| 深圳市| 望奎县| 屯留县| 三穗县| 乾安县| 普格县| 斗六市| 铜山县| 华安县| 电白县| 江川县| 凤凰县| 遂溪县| 和龙市| 马山县| 东源县| 和顺县| 衡南县| 尼勒克县| 讷河市| 襄汾县| 郁南县| 治多县| 历史| 加查县| 信阳市| 文成县| 科技|