站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题给Java SE 注入脚本语言的活力

给Java SE 注入脚本语言的活力

摘要: 给Java SE 注入脚本语言的活力

</td> </tr> <tr> <td height="35" valign="top" class="ArticleTeitle"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="57" align="left" valign="top"> </td> </tr> </table> 脚本语言与 Java

假设我们有一个简单的需求,察看一份文档中 5 个字母组成的单词的个数。用 Java 一般实现如下:

<table cellSpacing=0 cellPadding=0 width="100%" border=0> <tr> <td class=code-outline>
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);

    }

}
</td> </tr> </table>
再看看 Perl 语言实现同样功能的代码:

<table cellSpacing=0 cellPadding=0 width="100%" border=0> <tr> <td class=code-outline>
open FILE, ") {

    for (split) {

        $num++ if /^\w{5}$/

    }

}

print $num;
</td> </tr> </table>

那么有没有一种优雅的方式将 Java 与脚本语言结合呢,在今年秋季即将发布的 Java SE6(代号 Mustang)中,这将成为现实。

Mustang 的脚本引擎

JSR 233 为 Java 设计了一套脚本语言 API。这一套 API 提供了在 Java 程序中调用各种脚本语言引擎的接口。任何实现了这一接口的脚本语言引擎都可以在 Java 程序中被调用。在 Mustang 的发行版本中包括了一个基于 Mozilla Rhino 的 JavaScript 脚本引擎。

Mozilla Rhino

Rhino 是一个纯 Java 的开源的 JavaScript 实现。他的名字
↑返回目录
前一篇: Java 1.5 Tiger 一个开发者的笔记
后一篇: 给二维数组排序