将php文件包含在最终的Jar中,以便该方法可以调用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")
    }
}

我在pom.xml中包含了test.php(文件位于/src/main/resources中)文件作为这个java项目的资源,在构建test.php之后,它就在Jar中。

现在,当有人在pom.xml中使用JavaPhpTest-jar作为依赖项,并像一样调用method1()

class javaCall{
public void testing(){
    new JavaPhpTest().method1();
}

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

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

我应该为php创建一个pom项目并包括它吗?如果是的话,有人能为我提供工作链接吗。

如果要执行test.php,必须从Jar中读取文件内容,并将其保存为临时文件夹中的常规文件。在这里你会发现一些例子:getResourceAsStream()没有';t请参阅资源

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

更新

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

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