NashornがOpenJDKのリポジトリに入ってたのでビルドしてみた
最近、新聞で取り上げられるなど話題(汗)のJava界隈の話。
何気なく、nashornの近況をググってみたら、
nashornがすでにOpenJDKに入れられてた。
ををっ!
自分の想像していた(根拠なし)より、ずっと早くOpenJDK入りしてた。
Nashornの2012/12/21のblogにはリポジトリのURLが載ってる。
参照:https://blogs.oracle.com/nashorn/entry/open_for_business
nashornのリポジトリのログ見る限り、b65とか書いてあったので、 自分が先日確認した時点(b72)のbinary配布のjdk8に含まれているかと思って
インストールしてみた。
サンプルコード:
java build 1.8.0-ea-b72 に入っているjrunscriptで実行した結果(Rhionで実行?)
まだ、nashornは入っていなささそうです?
ショーガナイので、普段はやらないけどOpenJDKのnashornのリポジトリから
ソースを入手し、やっつけビルドしてみた。
ビルド方法は超簡単。antするだけだった。
一部ファイルが足りないと言われたので、それを探してくるのに手間取ったけどビルドは成功。
(単にMercurialの見方がわからくて躓いたとも言う。)
んー、ビルド中なんかワーニング出てたけど...まあいいや。
javadoc作成に失敗したけど...まあいいや。
一応nashorn.jarはできた。
...こまけぇこたぁいいんだよ!!
上記のサンプルコードを実行してみた。
結果:
nashornで実行
動いた!やっぱバージョン表示違うね。
というか、そもそもバージョン表示する対象が別物にも見える。
jdk8のlanguage versionてjavaのバージョンで、
nashornの方はちゃんとECMAScriptのバージョンになっている?
あと、JDK8同梱のRhinoではCP938の文字コードでソースを書くと実行できるのだけど、
nashornでは、UTF-8でソース書かないとダメでした。
最近、node.jsをいじっているので、できたら、JavaOneで発表されてたnode.jarとか
実行してみたかったのだけど、ちょっと探した限りnode.jarは見つけられなかった。
(まだ一般公開していないのかしら?)取りあえず今回はここまで。
巷ではHTML5はよく聞いたけど、ECMAScript5なんて気にも留めたこと無かった。
色々標準関数追加されてるのね。知りませんでした。
Object.create()とか「O'Reilly ステートフルjavascript」に出てきた気がするので、
後で調べてみるか。
手元のjavascriptのポケットリファレンスにはこの関数群は書いてないので、
買いなおさないと。
2013/1/31 に JJUG Java Naight Semminarがある。ネタはHTML5とJavaらしいけど、
nashornの話も話題に上がるのだろうか?参加を申し込んでいるので、ちょっと期待。
何気なく、nashornの近況をググってみたら、
nashornがすでにOpenJDKに入れられてた。
ををっ!
自分の想像していた(根拠なし)より、ずっと早くOpenJDK入りしてた。
Nashornの2012/12/21のblogにはリポジトリのURLが載ってる。
参照:https://blogs.oracle.com/nashorn/entry/open_for_business
nashornのリポジトリのログ見る限り、b65とか書いてあったので、 自分が先日確認した時点(b72)のbinary配布のjdk8に含まれているかと思って
インストールしてみた。
サンプルコード:
"use strict"; (function() { // バージョン取得 var engineName = "nashorn"; var key = javax.script.ScriptEngine.ENGINE_VERSION; var m = new javax.script.ScriptEngineManager(); var engine = m.getEngineByName(engineName); var version1 = engine.getFactory().getParameter(key); var version2 = engine.getFactory().getLanguageVersion(); print("[DEBUG]\r\n" + " engine version = [" + version1 + "]\r\n" + " language version = [" + version2 + "]\r\n"); var names = engine.getFactory().getNames(); var temp = []; for (var i = 0; i < names.size(); i++) { temp.push(names.get(i)); } print("[DEBUG] javascript engine names=" + temp.join(", ")); })();結果:
java build 1.8.0-ea-b72 に入っているjrunscriptで実行した結果(Rhionで実行?)
[DEBUG] engine version = [1.7 release 3 PRERELEASE] language version = [1.8] [DEBUG] javascript engine names=js, rhino, JavaScript, javascript, ECMAScript, ecmascript
まだ、nashornは入っていなささそうです?
ショーガナイので、普段はやらないけどOpenJDKのnashornのリポジトリから
ソースを入手し、やっつけビルドしてみた。
ビルド方法は超簡単。antするだけだった。
一部ファイルが足りないと言われたので、それを探してくるのに手間取ったけどビルドは成功。
(単にMercurialの見方がわからくて躓いたとも言う。)
んー、ビルド中なんかワーニング出てたけど...まあいいや。
javadoc作成に失敗したけど...まあいいや。
一応nashorn.jarはできた。
...こまけぇこたぁいいんだよ!!
上記のサンプルコードを実行してみた。
結果:
nashornで実行
[DEBUG] engine version = [0.1] language version = [ECMA - 262 Edition 5.1] [DEBUG] javascript engine names=nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript
動いた!やっぱバージョン表示違うね。
というか、そもそもバージョン表示する対象が別物にも見える。
jdk8のlanguage versionてjavaのバージョンで、
nashornの方はちゃんとECMAScriptのバージョンになっている?
あと、JDK8同梱のRhinoではCP938の文字コードでソースを書くと実行できるのだけど、
nashornでは、UTF-8でソース書かないとダメでした。
最近、node.jsをいじっているので、できたら、JavaOneで発表されてたnode.jarとか
実行してみたかったのだけど、ちょっと探した限りnode.jarは見つけられなかった。
(まだ一般公開していないのかしら?)取りあえず今回はここまで。
巷ではHTML5はよく聞いたけど、ECMAScript5なんて気にも留めたこと無かった。
色々標準関数追加されてるのね。知りませんでした。
Object.create()とか「O'Reilly ステートフルjavascript」に出てきた気がするので、
後で調べてみるか。
手元のjavascriptのポケットリファレンスにはこの関数群は書いてないので、
買いなおさないと。
2013/1/31 に JJUG Java Naight Semminarがある。ネタはHTML5とJavaらしいけど、
nashornの話も話題に上がるのだろうか?参加を申し込んでいるので、ちょっと期待。
コメント