我有一个生成 HTML 文件的 java 程序。Java程序有两个输入参数:file1和file2,输出文件由“--file=”指定。
从命令行(UNIX、Mac OS 10.6.2)执行时,它看起来像这样:
"java -jar program.jar http://my.testsite.com/test1.html http://my.testsite.com/test2.html --file=/path/to/jar/new_file_1274119954.html
从命令行执行程序会生成文件“new_file_TIEMSTAMP.html”
现在我想从 PHP 中执行同一行,所以我创建了以下脚本:
$file1 = 'http://my.testsite.com/test1.html';
$file2 = 'http://my.testsite.com/test2.html';
$newFile = '/path/to/jar/new_file_'.time().'.html';
system("java -jar program.jar $file1 $file2 --file=$newFile");
$handle = fopen($newFile, "r");
$output = fread($handle, filesize($newFile));
echo "$output";
如您所见,我对控制台输出并不真正感兴趣,而是对程序生成的文件感兴趣。
我还使用以下调用来执行控制台命令,但从我的浏览器执行此 PHP 脚本时它们都不起作用。
我不确定是否需要在我的 php.ini 中启用一些特殊设置,或者我做错了什么,但我不确定现在该怎么做。
感谢您的帮助
PD:
我在使用系统调用时收到的一条错误消息如下: javax.xml.transform.TransformerException: org.xml.sax.SAXException: setResult() 必须在 startDocument() 之前调用。