JavaScript ScriptEngine 実装に関する Java ドキュメントには、アクティブなセキュリティ マネージャがない場合、システム プロパティ「rhino.opt.level」を設定できると記載されています。(「セキュリティ マネージャーが使用されていない場合、システム プロパティ "rhino.opt.level" は [-1, 9] の範囲で定義できます。デフォルトでは、値は -1 に設定されており、オプティマイザーが無効になっています。」を参照してください。http://docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_guide/#jsengine )
私の質問は、これをどのように行うことができるかです。私はそれを環境変数として設定し、コードで使用してみました
System.setProperty("rhino.opt.level", "9");
しかし、コンパイルされたスクリプトには何の影響もありませんでした。jvmなどに渡す必要があるコマンドライン引数はありますか?
編集:私のテストコード:
String script = IOUtil.readTextFile("test.js", "UTF-8"); // reads the file's content
System.setProperty("rhino.opt.level", "9");
final ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("JavaScript");
Compilable compiler = (Compilable) scriptEngine;
CompiledScript cs = compiler.compile(script);
cs.eval();