0

QuercusCompiledScript.eval の何が問題なのかわかりません。実行中のコード:

QuercusScriptEngine quercusScriptEngine = new QuercusScriptEngine();
quercusScriptEngine.eval("<?php echo 'hello uncompiled!\n'; ?>");
CompiledScript script = quercusScriptEngine.compile("<?php echo 'hello compiled!\n'; ?>");
script.eval();
System.out.println("that's all");

生成:

hello uncompiled!
that's all

このようなものをデバッグすると、ステートメントを実行するため、何が問題なのかわかりませんでした。バッファは問題ありませんが、出力自体は実行されません。

なにが問題ですか?

4

1 に答える 1

0

問題の原因がわかりました。最後に明示的にhttp://bugs.caucho.com/view.php?id=1914QuercusScriptEngine.eval()参照します。しかし、少なくとも quercus-4.0.39 (および quercus-4.0.45) ではそうではありません。回避策は、次を指定して明示的にフラッシュすることです。writer.flush()QuercusCompiledScript.eval()Writer

CompiledScript script = quercusScriptEngine.compile("<?php echo 'hello compiled!\n'; ?>");
ScriptContext ctx = quercusScriptEngine.getContext();
Writer writer = new OutputStreamWriter(System.out);
ctx.setWriter(writer);
script.eval(ctx);
writer.flush();
于 2015-11-28T05:30:51.567 に答える