Avatar.jsのビルド

Node.jsをJVM上で動かそうという野心的(?)なプロジェクトである、Avatar.js。以前はNode.jarと言っていましたが、Project Avatarのコア部分としての位置づけという意味も込めて、プロジェクト名称がAvatar.jsに変わりました。

手始めに、ビルド方法、実行方法、性能を確認するために、実際の環境にビルドすることにします。
以前のエントリ(2ヶ月以上前ですが)に記載した通り、プラットフォームのネイティブAPIを利用してパフォーマンス向上を図る、という理由から、以下のOSでの実行が推奨されています。なお、64bit環境のみで動作します。32bit環境では動作しません。

  • Linux
  • Solaris
  • Windows
  • Mac OS X

ビルドの手順は詳細な説明が README.md にありますが、備忘録の意味を込めて書き出します。なお、当方の環境はMacBook Pro (OS X 10.9.2)です。

事前準備

以下のツールやJDKが必要です。

  • JDK 8
  • ant (1.8以上)
  • Python (2.7.5以上)
  • プラットフォームで利用可能なC++コンパイラ、リンカ
  • gitクライアント
  • testng(最新版でOK)

Windowsでのビルドのためには、cygwinやVisual Studio(Express Editionで十分です)なども必要です。OS Xであれば、XcodeとNetBeansをインストールしておけばOKです。

ソースのダウンロード

Node.jsのソースと、Avatar.jsのソースをダウンロードする必要があります。執筆時点(2014/05/10)では、Avatar.jsはNode.jsの0.10.25に対応しています(nodejs.orgの最新版は0.10.28)。対応するバージョンのNode.jsをダウンロードしてください(0.10.28をダウンロードしてしまっても、ビルドする方法はありますが、対応しているバージョンを使うほうが安心感を得られます)。

なお、nodejs.jp(Node.js日本ユーザーグループ)のページからダウンロードすることもできます。執筆時点では0.10.25がダウンロードできるようです。

Avatar.jsのソースは、Avatar.js本体、libuv-java、http-parser-javaの3種類ありますので、全てダウンロードします。こちらにgitリポジトリのURLが記載されていますので、以下のような感じでcloneしておきます。

git clone git://java.net/avatar-js~src avatar-js
git clone git://java.net/avatar-js~libuv-java libuv-java
git clone git://java.net/avatar-js~http-parser-java http-parser-java

プロパティファイルを作成・編集

~/.avatar-js.propertiesを作成し、以下の値を設定します。以下にソースをダウンロードしていることを前提として、以下のように記述します。このとき、相対パスや~/などを使うとビルドに失敗するので、注意が必要です(どうも先頭に/がない限り、相対Pathと見做すようです)。

source.home = <WorkSpace>/source #node.jsのソース
libuv.home = <WorkSpace>/libuv-java #libuv-javaのソース
http-parser.home = <WorkSpace>/http-parser-java #http-parser-javaのソース
avatar-js.home = <WorkSpace>/avatar-js #Avatar.jsのソース
testng.jar = <WorkSpace>/lib/testng.jar #testng.jarファイル

ネイティブライブラリを参照できるように、以下の環境変数を設定します。

export LD_LIBRARY_PATH=$PWD/dist:$LD_LIBRARY_PATH # Linux、Solarisの場合
export DYLD_LIBRARY_PATH=$PWD/dist:$DYLD_LIBRARY_PATH # OSXの場合
set PATH=%CWD%/dist;%PATH% # Windowsの場合

このあとは、avarar-jsディレクトリに移動して、ant setup、ant buildを実行します。

cd avatar-js
ant setup
ant clean-all
ant jar-all # ant -Dbuild.type=Release jar-allでRelease版のみビルド

ビルドが成功したら、テストしてみましょう。

java -jar dist/avatar-js.jar src/test/js/test-runner.js test/simple #unit test
java -jar dist/avatar-js.jar src/test/js/test-runner.js test/crypto #crypto test
java -jar dist/avatar-js.jar src/test/js/test-runner.js -timeout 180 test/pummel #pummel test

cryptoテストのときは、Java Cryptography Extension Unlimited Jurisdiction Policy Filesが必要ですので、OTNからダウンロードしておきましょう。

Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Download
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

あとは、node.jsのサンプルアプリケーションなんかで遊んでみてください。

anishi1222 について

とあるキャラクターの中の人です。
カテゴリー: Java, JavaScript タグ: パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

w

%s と連携中