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の話も話題に上がるのだろうか?参加を申し込んでいるので、ちょっと期待。
コメント