在最终 Jar 中包含 php 文件,以便方法可以调用 php 文件

include php file in final Jar so that method can call php file

我正在使用来自 java 代码的 php 文件,例如

Class JavaPhpTest{
    public void method1(){
Process p = Runtime.getRuntime().exec("/usr/local/php/bin/php " + "test.php")
    }
}

我将 test.php(文件位于 /src/main/resources)文件包含在 pom.xml 中作为此 java 项目的资源,并且在构建 test.php 之后在罐子里。

现在,当有人在他们的 pom.xml 中使用 JavaPhpTest-jar 作为依赖项并像

一样调用 method1()
class javaCall{
public void testing(){
    new JavaPhpTest().method1();
}

问题是,现在当我调用 testing() 时,它给出了找不到 test.php 的错误。

我看到 JavaPhpTest-jar 在 javaCall 的类路径中,但没有 php。 任何人都可以建议我们如何解决这个依赖问题吗?

我是否也应该为 php 创建一个 pom 项目并将其包含在内?如果是这样,有人可以让我工作 link 来做到这一点。

如果你想执行 test.php 你必须从 Jar 中读取文件内容并保存为常规文件,在临时文件夹中。您可以在这里找到示例:getResourceAsStream() doesn't see resource

然后使用临时文件夹中的文件路径调用 Runtime.getRuntime().exec(..)

更新

我看到了你的解决方案,它可能被简化了:

InputStream phpStream = JavaPhpTest.class.getResourceAsStream("/test.php");
java.nio.file.Files.copy(phpStream, Paths.get("test.php"));