1

HTML ファイルを生成する Java プログラムがあります。Java プログラムは、file1 と file2 の 2 つの入力パラメータを取り、出力ファイルは「--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:

システムコール の使用時に表示されるエラー メッセージの 1 つは、次のとおり です。

4

3 に答える 3

2

Java 例外は、そこに XML 例外があることを示しているので、ソース ファイルが有効かどうかを確認することから始めてみませんか? ここからは、Java アプリが何をするのかを伝えるのは困難です。

また、apache または PHP ユーザーが Java アプリを実行し、ファイルを作成する権限を持っているかどうかを確認します。

幸運を。

于 2010-05-17T18:41:09.723 に答える
0

私と同じ問題に遭遇したと仮定すると、DaisyDiff を使用して、ファイルを配置する前にディレクトリを作成する必要があります。必要なファイルはそれ自体では作成されません。

これが役立つことを願っています!

于 2011-01-25T23:06:02.910 に答える
0

私は実際には PHP についてあまり知りませんが、呼び出しを行うとき にandsystem("java -jar program.jar $file1 $file2 --file=$newFile")の値を評価していない可能性はありますか?$file1$file2$file1

代わりに、次のようなものが必要だと思います

$cmd = "java -jar program.jar " . $file1 . " " . $file2 . "--file=" . $newFile;
system($cmd);
于 2010-05-17T18:40:47.017 に答える