<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    內蒙古java團隊

    j2se,j2ee開發(fā)組
    posts - 139, comments - 212, trackbacks - 0, articles - 65
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
     最新的Java主版本(Java?SE?6,又稱Mustang)現在正處于beta版本階段。雖然該版本并不像Java?5的更新那么多,但是它確實有一些有趣的新特性。毋庸置疑,其中的一個就是對腳本編寫語言的支持。
    ?
       諸如PHP、Ruby、JavaScript、Python(或Jython)之類的腳本編寫語言被廣泛應用于許多領域,并由于其靈活性和簡單性而大受 歡迎。由于腳本是被解釋而不是被編譯的,所以可以輕松地從命令行運行和測試它們。這就壓縮了編碼/測試周期,并提高了開發(fā)人員的生產率。腳本通常是動態(tài)鍵 入的,其語法極富表現力,所編寫出的算法要比Java中的等效算法簡明得多。使用起來通常也很有趣。
    ?
      在很多情況下,從Java使用 腳本編寫語言會很有用,比如為Java應用程序提供擴展,以便用戶可以編寫自己的腳本進行擴展或定制化核心功能。腳本編寫語言可讀性更強,也更容易編寫, 所以(從技術上來說)它們是用于為終端用戶提供根據需求定制化產品的可能性的理想語言。
    ?
      早已經有許多Java可用的獨立腳本編寫包了,包括Rhino、Jacl、Jython、BeanShell、JRuby等。新消息是Java?6通過一個標準接口為腳本編寫語言提供了內置支持。
    ?
       Java?6提供對JSR-223規(guī)范的全面支持。該規(guī)范提供了一種從Java內部執(zhí)行腳本編寫語言的方便、標準的方式,并提供從腳本內部訪問Java 資源和類的功能。Java?6附帶了與Mozilla?Rhino的JavaScript?實現的內置集成。基于該規(guī)范,對諸如PHP、Groovy和 BeanShell之類的其它腳本編寫語言的支持也正在進行中。本文關注的是Rhino實現,但是其它語言應該是基本相同的。
    ?
      那么如何在Java?5中使用JSR-223的實現呢??偶經過仔細地研究,?終于找到了解決方法....?
    ?
    ?????1.?干活要從理論開始....
    ?
    ????? 根據JavaDoc的說法,?javax.script.ScriptEngineManager?是通過JAR規(guī)范中所謂的服務提供商 (Service?Provider)方法來在庫中檢索?javax.script.ScriptEngineFactory?實現類并自動注冊的. ?OK,?了解了這個就好辦了,?準備開始干活哈....
    ?
    ?????2.?開始動手干活了....?:)
    ?
    ?????首先制作JSR-223規(guī)范實現的包(包括SUN的JavaScript默認實現):
    ?????使用WinRAR等壓縮工具打開JRE6中rt.jar文件(注意要提前備份!我的就是備份為jsr-233.jar),?如圖1所示:

    圖1?rt.jar的目錄結構

    ?????OK,下面開始刪除文件....?除了com.sun.script、sun.org、javax.script、META-INF目錄之外,其余的目錄全都刪除。刪除后如下圖所示:

    圖2?刪除后的目錄結構

    ?????目錄做好之后,下面開始按照JAR規(guī)范所描述的Service?Provider方法來創(chuàng)建文件以便于?javax.script.ScriptEngineManager?的檢索:
    1. 在META-INF目錄下建立一個名稱為?services?的目錄。

    2. 在?services?目錄中新建名稱為?javax.script.ScriptEngineFactory?的空文件。

    3. 在?javax.script.ScriptEngineFactory?文件中,寫入“com.sun.script.javascript.RhinoScriptEngineFactory”數據,注意不寫引號。

    圖3?新加入的services目錄和文件

    ?????最后,將所有改動保存到jsr-223.jar文件中,工作完成!

    ?????3.?測試包

    ????????將jsr-223.jar加入到項目的庫中,然后編寫下面的代碼:
    --------------------------------------------------------------------------------
    ScriptEngineManager?manager?=?new?ScriptEngineManager();
    ScriptEngine?engine?=?manager.getEngineByName("js");
    engine.put("age",?21);
    engine.eval("if?(age?>=?18){?"?+
    ????????????"??print('Old?enough?to?vote!');?"?+
    ????????????"}?else?{"?+
    ????????????"??print?('Back?to?school!');"?+
    ????????????"}");
    --------------------------------------------------------------------------------
    這時控制臺應返回:Old?enough?to?vote!?下面是其在Eclipse下運行的截圖:

    圖4?測試程序在Eclipse下的運行情況

    4.?參考資料:
    1. JSR-223(Scripting?for?the?Java?Platform)規(guī)范:http://www.jcp.org/en/jsr/detail?id=223

    2. Mustang與Rhino:Java?6中的腳本編寫:http://dev2dev.bea.com.cn/techdoc/20060712844.html

    3. JAR規(guī)范中的Service?Provider描述:http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service%20Provider

    4. 本文的技術支持:中國Eclipse社區(qū)(http://www.eclipseworld.org

    5. jsr-223.jar包下載:http://projects.eclipseworld.org/xswt/attachment/jsr-223.jar
    主站蜘蛛池模板: 国产成人精品123区免费视频| 亚洲无码日韩精品第一页| 亚欧在线精品免费观看一区 | 中文字幕免费在线看电影大全| 久久久精品免费视频| 久久99精品国产免费观看| 亚洲国产一成人久久精品| 亚洲中文字幕无码av| 国产拍拍拍无码视频免费| 女性无套免费网站在线看| 亚洲中文字幕无码久久2017| 亚洲中文字幕AV在天堂| CAOPORN国产精品免费视频| 天天摸天天操免费播放小视频| 亚洲av午夜精品无码专区| 在线播放免费人成毛片乱码| 国产午夜影视大全免费观看| 久久精品国产亚洲夜色AV网站| 国产偷国产偷亚洲高清在线| 99无码人妻一区二区三区免费| 亚洲国产香蕉人人爽成AV片久久| 亚洲国产精品日韩在线观看| 99精品视频在线观看免费| 又大又黄又粗又爽的免费视频 | 美女裸身网站免费看免费网站| 亚洲精品无码成人AAA片| 四虎影视成人永久免费观看视频| 亚洲视频一区在线观看| 日本高清免费观看| 亚洲制服丝袜在线播放| 日韩插啊免费视频在线观看| 亚洲中文字幕在线观看| 精品无码无人网站免费视频| 亚洲av无码精品网站| 1000部啪啪未满十八勿入免费| 亚洲AV福利天堂一区二区三| 中文在线免费观看| 亚洲另类图片另类电影| 亚洲精品成人片在线观看| 99精品视频免费观看| 亚洲av综合av一区二区三区|