1

私の Java アプリでは、Jython を使用して Python コードを解釈したいと考えています。
そこで、Jython を次のように初期化します。

PySystemState.initialize();
PythonInterpreter jython = new PythonInterpreter();

次に、次のようにテストします。

jython.eval("out = ''");
jython.eval("out += 'Test1\n'");
jython.eval("out += 'Test2\n'");
System.out.println(jython.get("out").toString());

ただし、最初の eval 行で次のエラーがスローされます。

  File "<string>", line 1
    out = ''
       ^
SyntaxError: mismatched input '=' expecting EOF

evalの代わりにexecで試してみると、次のエラーが発生します。

  File "<string>", line 2
    '
    ^
SyntaxError: no viable alternative at character '''

ここで私が間違っていることはありますか?

PS: jython-2.5.4-rc1 を使用しています

4

2 に答える 2

2

次のものがあることを確認する必要があります

  • out変数を宣言する
  • Java を使用しているため、次のような特殊文字をエスケープします。\\n
  • execではなく使用eval

これにより、次が生成されます。

PythonInterpreter jython = new PythonInterpreter();
jython.set("out", new PyString());
jython.exec("out = ''");
jython.exec("out += 'Test1\\n'");
jython.exec("out += 'Test2\\n'");
System.out.println(jython.get("out").toString());
于 2013-04-03T00:04:33.063 に答える