PHP Java JAR yürütülürken çalışmaz

3 Cevap java

Ben bir HTML dosyası oluşturur bir java programı var. Java programı iki giriş parametreleri alır: dosya1 ve file2, çıktı dosyası tarafından belirtilen "- file =".

Komut satırından (UNIX, Mac OS 10.6.2) çalıştırıldığında bu gibi görünüyor:

"java -jar program.jar http://my.testsite.com/test1.html http://my.testsite.com/test2.html --file=/path/to/jar/new_file_1274119954.html

Program komut satırından çalıştırılıyor dosyayı "new_file_TIEMSTAMP.html" üretir

Şimdi ben bu yüzden aşağıdaki komut dosyası oluşturulan bu aynı çizgi formu PHP yürütmek istiyorum:



$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";

Gördüğünüz gibi, ben gerçekten konsol çıkış ilgilenen değil, program tarafından oluşturulan dosyasında değilim.

Ben de konsol komutu çalıştırmak için aşağıdaki çağrı kullanın ama benim tarayıcıdan Bu PHP betiği çalıştırırken ikisi de çalışıyor.

Benim php.ini içinde etkinleştirmeniz gerekir, ya da ben yanlış yapıyorum bir şey, ama ben şimdi ne emin değilim bazı özel ayar varsa ben emin değilim.

Senin yardım takdir

PD:

One error message I do get when using the system call is the following: javax.xml.transform.TransformerException: org.xml.sax.SAXException: setResult() must be called prior to startDocument().

3 Cevap

Peki, Java istisna orada bir XML istisna, belki kaynak dosyanın geçerli olup olmadığını görme ile başlar söyler? Bu Java uygulaması ne buradan söylemek zor.

Ayrıca, ben apache veya PHP kullanıcı Java uygulaması yürütmek ve dosyaları oluşturmak için izni varsa görmek için bir göz olurdu.

İyi şanslar.

Gerçekten PHP hakkında çok fazla bilmiyorum, ama size system("java -jar program.jar $file1 $file2 --file=$newFile") arama yaptığınızda, $file1 değerini değerlendirmek değil mümkündür ve {[(2)] }, bu nedenle [(1)]}, yerine Test1.HTML ve {adında bir dosyayı bulmak için soruyorsun?

Bunun yerine, ben gibi bir şey istediğiniz düşünüyorum

$cmd = "java -jar program.jar " . $file1 . " " . $file2 . "--file=" . $newFile;
system($cmd);

Bir dosya içine yerleştirilebilir önce DaisyDiff kullanarak yaptım aynı sorun koştu varsayarsak, dizin oluşturmanız gerekir. Kendisi tarafından gerekli dosyaları oluşturmak değildir.

Bu yardımcı olacağını umuyoruz!