我試圖從使用exec()命令,更準確地使用PHP腳本執行.jar文件:如何使用PHP執行java -jar文件,並將由.jar創建的文件加載到服務器?
<?php
$command = 'java -jar myfile.jar';
exec($command, $output);
?>
兩個PHP腳本,以及罐子都在服務器上的同一目錄下。 myfile.jar生成一個excel電子表格,我希望這個電子表格可以創建或存儲在服務器上相同的目錄或另一個目錄中。當我在我的電腦的終端執行myfile.jar時,程序工作正常,並將文件輸出到.jar所在的目錄。
任何想法?
最好的問候。
很可能這是一個權限問題,其中服務器(Apache?)實際上不允許運行java,或者java腳本沒有訪問寫入權限才能寫入文件。 嘗試通過cli自己運行php腳本,方法是輸入'php -q <你的php腳本的名稱>',看看會發生什麼。如果它有效,那意味着你有很高的可能性,確實是一個權限問題。 – Tularis
你可以試試'$ command ='cd output_folder && java -jar /full/path/to/myfile.jar';' – Arnauld
1)** var_dump($ output); **說什麼?如果它告訴你什麼都沒有,2)用java調用創建一個shell腳本,並將stderr(使用2>)輸出到一個文件中。從PHP調用腳本,然後檢查文件中可能出現的stderr錯誤。 3)確保Java可以從你工作的用戶的目錄中調用。 – Werner