在执行jar文件时,我在php中遇到以下问题。我使用以下命令:
exec("java -jar JavaProject4.jar";
JavaProject4.jar在java代码中给出的路径中创建一个txt文件。
当我在NetBeans中运行项目时,会创建txt文件。但是,当我在php中执行jar时,我没有得到任何错误,但我无法获取该文件。
这里是我用来编写文件的java代码:
public static void main(String[] args) throws InterruptedException, FileNotFoundException, IOException {
Main a = new Main();
List<Double> l1 = new ArrayList<Double>();
l1 = a.compute_features();
//System.out.println(l1);
FileWriter fstream1 = new FileWriter("C:/wamp/www/test/out.txt");
BufferedWriter out1 = new BufferedWriter(fstream1);
out1.write(l1.toString());
out1.newLine();
out1.close();
}
我使用带有php 5.2.4的wamp服务器和最新的java版本。
非常感谢!
编辑: 问题解决了,我将NetBeans中的主要java文件移动到默认包并修复了错误的路径,现在一切都按预期工作。
谢谢大家
答案 0 :(得分:1)
当你用PHP运行它时,你是怎么做到的?您使用的是PHP CLI(命令行界面),还是通过Apache模块(CGI或其他方式)运行它?我问的原因是因为你遇到的问题可能与脚本执行的用户有关。如果您使用的是CLI,那么您将作为Windows用户运行,但是,如果您通过Apache运行它,那么它就像运行Apache的用户一样运行。因此,您可能需要为要写入的目录的Apache用户提供相关权限。
此致 拉尔夫
答案 1 :(得分:0)
我认为您需要指定完整路径: - java可执行文件 - 你的罐子
示例:
exec(“/ usr / bin / java -jar /my/java/project/path/JavaProject4.jar”);