java - 我缺少什么来获得 Java 中的 PHP ScriptEngine

标签 java php

我尝试从 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 当前的实现包括 QuercusPHP to Java bridge .

关于java - 我缺少什么来获得 Java 中的 PHP ScriptEngine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1219848/

相关文章:

java - 如何在android gridView中设置固定的行数?

java - GUI 没有按应有的方式更新

javascript - 不必每次循环都重复脚本

php - 使用带变量的 PDO 更新 MySQL

javascript - 在 Ajax 中测试 PHP 响应

java - Set-Cookie header 从响应中删除,Spring 启动

java - 从 org.apache.http.HttpResponse 获取 HTTP 代码

php - 只是无法让 for 循环在 Php 中生成所需的数组

java - 使用 .append(string1 + string 2) 与 .append(string1).append(string2)

php - Laravel 7 - created_at 在数据表中显示错误的日期时间