我使用的是像这样的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"));