我尝试从 ScriptEngineManager 获取 PHP ScriptEngine,但 getEngineByName("php") 返回 null。如果我用“javascript”替换“php”,则以下单元测试有效,但“php”则失败。
import static org.junit.Assert.*;
import org.junit.Test;
import javax.script.*;
public class ScriptEngineTest {
@Test
public void executeCommand() throws Exception {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("php");
assertNotNull(engine);
}
}
我一定错过了一些明显的东西。我知道,Rhino 附带 Java 6,并且是 JavaScript 引擎的背后。我在哪里可以得到这个 PHP 版本?
编辑:
我迈出了第一步。 Here是 JavaBridgeTemplate5442.war 的下载链接。我解压了这个war文件。在 WEB-INF/lib/下我找到了 jar 文件
- JavaBridge.jar
- php-script.jar
- php-servlet.jar
当我将 JavaBridge.jar 放入类路径中时,单元测试可以正常工作。 (可能我还需要 php-script.jar 来实际执行 PHP 代码。)
最佳答案
列出了 JSR 223 下可用的脚本引擎 here (页面底部)。
PHP 当前的实现包括 Quercus和 PHP to Java bridge .
关于java - 我缺少什么来获得 Java 中的 PHP ScriptEngine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1219848/