2012-03-14 4 views
3

Javaファイル内のjavascriptを評価するのにjavax.script。* packageを使用しています。 ScriptEngineオブジェクトを使用して、いくつかのJavaScriptコードを評価しています。 javaScriptコードはブール値を返します。 Javaファイルでブール値を取得する方法がわかりません。例えば、参照のために:JavaScriptコードがjavax.script.ScriptEngineオブジェクトを使用して評価された後にブール値を返します

import javax.script.*; 
public class Test { 
    public static void main(String[] args) throws Exception { 
     ScriptEngineManager factory = new ScriptEngineManager(); 
     ScriptEngine engine = factory.getEngineByName("JavaScript"); 
     String filepath = "../test.js"; 
     engine.eval(new java.io.FileReader(filepath)); 
    } 
} 

test.js

function test(value) { 
    if(value==1) { 
     println("True"); 
     return true; 
    } else { 
     println("False"); 
     return false; 
    } 
} 

var i=1; 
test (i); 

Iは、以下を試してみました:

Boolean result = (Boolean) engine.eval(new java.io.FileReader(filepath)); 

上の行は、java.lang.NullPointerExceptionがエラーをスローします。

おかげで、JSでは ソニー

+0

は 'println's作業のいずれかをしましたか? –

+0

はい、printlnステートメントは正常に動作します。私はtest.jsのコードを編集しました。 – sony

+1

スタックトレースを送信します。 – McDowell

答えて

1

:Javaの

var result=test (i); 

engine.eval.... 
engine.get("result"); 
関連する問題