我正在使用来自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.ini。
有人可以建议我们如何解决这个依赖问题吗?
我是否也应该为 php 创建一个 pom 项目并包含它?如果是这样,有人可以给我提供工作链接来做到这一点。
最佳答案
如果你想执行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"));
关于java - 在最终的 Jar 中包含 php 文件,以便方法可以调用 php 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37162176/