Rhino JavaScript Compiler
出典: MDC
[編集] 概要
JavaScript コンパイラは、JavaScript ソースを Java クラス・ファイルへと変換します。結果の Java クラス・ファイルは、別の機会に読み込んで実行することができます。JavaScript を変換したり、翻訳コストを抑えるための、便利なメソッドが提供されています。
シェルで利用できるトップレベルの関数 (print のような) は、コンパイルされたスクリプトの場合、シェルの外部で実行するときは利用できないことに注意してください。
[編集] コンパイラのコマンドライン
java org.mozilla.javascript.tools.jsc.Main [オプション] file1.js [file2.js...]
オプション について:
-extends java-class-name
Java クラスの java-class-name を拡張するものとして、JavaScript ソースファイルを元に生成する。ソースファイル内の各グローバル関数は、生成されるクラスのメソッドとして作られ、基底クラスの同名のメソッドがあればオーバーライドされる。
-implements java-intf-name
Java インターフェースの java-class-name を実装するものとして、JavaScript ソースファイルを元に生成する。ソースファイル内の各グローバル関数は、生成されるクラスのメソッドとして作られ、インターフェース内の同名のメソッドがあれば実装されることになる。
-debug
-g
デバッグ情報を生成する。ゼロより大きい optLevel の最適化とは、併用できないかもしれない。
-main-method-class className
メインのメソッド実装に使われるクラス名を指定する。ここでのクラスは public static void main(Script sc, String[] args) に合ったメソッドを持たなければならない。
-nosource
クラス・ファイル内にソースを保持しない。このようにコンパイルされた関数やスクリプトは、逆コンパイルできない。このオプションは、ソースの流出を避けたり、単に結果のクラス・ファイルのスペースの節約のために利用することができる。
-o outputFile
指定のファイル (.class で終わっているべき) に、クラス・ファイルを書き込む。outputFile は、書き込み可能なファイル名でなければならない。
-opt optLevel
optLevel のレベルで最適化を行う。それは -1〜9 の間の数値でなければならない。詳しくは、最適化 を参照のこと。optLevel がゼロより大きければ、-debug は指定できないはずです。
-package packageName
指定のパッケージとしてクラスを生成する。packageName は、任意でピリオドによって分割された、有効な識別文字で構成されていなければならない。
-version versionNumber
指定の言語バージョンとしてコンパイルする。versionNumber の値は、100, 110, 120, 130, 140, 150, あるいは 160 のうちのいずれかでなければならない。言語バージョンについて、詳しくは JavaScript 言語バージョン を参照のこと。
[編集] 実例
$ cat test.js
java.lang.System.out.println("hi, mom!");
$ java org.mozilla.javascript.tools.jsc.Main test.js
$ ls *.class
test.class
$ java test
hi, mom!
$ java org.mozilla.javascript.tools.jsc.Main -extends java.applet.Applet
-implements java.lang.Runnable NervousText.js