JavaアプリケーションからいくつかのPHPスニペットを実行しようとしています。
私はこの質問を見ました: Quercusを使用したJavaからのPHP呼び出し
これは単純に示唆しています:
import com.caucho.quercus.QuercusEngine;
QuercusEngine engine = new QuercusEngine();
engine.setOutputStream(System.out);
engine.executeFile("src/test.php");
そして私はhttp://wiki.caucho.com/Quercus%3a_Command_Line_Interface_%28CLI%29を見ました。これは次のことを示しています。
QuercusEngine engine = new QuercusEngine();
engine.setIni("foo", "bar");
engine.execute("<?php var_dump(ini_get('foo')); ?>");
しかし、そうすると、次のようになります。
Exception in thread "main" com.caucho.quercus.QuercusErrorException: eval::1: Fatal Error: 'var_dump' is an unknown function.
at com.caucho.quercus.env.Env.error(Env.java:6559)
at com.caucho.quercus.env.Env.error(Env.java:6445)
at com.caucho.quercus.env.Env.error(Env.java:6109)
at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:198)
at com.caucho.quercus.expr.CallExpr.eval(CallExpr.java:151)
at com.caucho.quercus.expr.Expr.evalTop(Expr.java:523)
at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67)
at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:413)
at com.caucho.quercus.QuercusEngine.execute(QuercusEngine.java:139)
at com.caucho.quercus.QuercusEngine.execute(QuercusEngine.java:100)
strlen、strcmp、phpinfoなどのどの関数でも同じことがわかります。
http://quercus.caucho.com/で説明されているように...
Quercus .warファイルは、GlassfishなどのJavaアプリケーションサーバーで実行できます。つまり、Resinの外部で実行できます。この.warファイルには、QuercusインタープリターとPHPライブラリーが含まれています。
そのページ( http://caucho.com/download/quercus-4.0.25.war)からwarファイルをダウンロードしました
と実行しています
$ javac -cp 'WEB-INF/lib/resin.jar;.' TestQuercus.java
$ java -cp 'WEB-INF/lib/resin.jar;.' TestQuercus
完全なファイルは
import com.caucho.quercus.QuercusEngine;
public class TestQuercus {
public static void main(String[] args) throws Exception {
QuercusEngine engine = new QuercusEngine();
engine.setIni("foo", "bar");
engine.execute("<?php var_dump(ini_get('foo')); ?>");
}
}
私はできる
java -cp 'WEB-INF/lib/resin.jar' com.caucho.quercus.CliQuercus foo.php
ここで、foo.phpには<?php phpinfo; ?>
では、どうすればそこから動作するQuercusEngineに到達できますか?
ありがとう、