我想調用一個java程序並在標準輸出中讀取它的輸出。我遵循stackoverflow中的建議。但它不起作用。在PHP中執行java類
我已經添加類文件到我的CLASSPATH。我可以按如下正確執行在CMD命令:
在我的PHP文件,我通過
exec("java Hello", $output);
print_r($output);
這個程序叫做它產生的只是:
Array()
什麼問題是什麼?我怎樣才能解決這個問題?
ps:你好是一個演示程序,實際上我想調用的程序要複雜得多,可能需要2秒或更長時間在我的機器(i5 4G)中。
試試看看'passthru()'返回的是什麼(而不是'exec()')。 'exec()'可能有選擇性,有時只捕獲返回值而不是打印內容。使用'escapeshellarg()'來保護你的腳本免受黑客攻擊。 – 2013-04-07 08:14:54
@Andarndar passthru返回返回值?無論如何,瀏覽器給出了'1'。 – zoujyjs 2013-04-07 08:18:36
如果JAVA程序中的main()函數返回1(返回0 =沒有錯誤,1 =錯誤;)),這意味着有錯誤。它可能有些事要做,PHP的命令行不像你在'cmd'中那樣獲取你的JAVA。兩者當然都是不同的設置。就像'cakil'回答,它可能會循環使用你返回的Array(),因爲PHP中的echo/print默認情況下不會顯示數組的內部值,就像你在其他語言中可能習慣的那樣。 – 2013-04-07 08:22:05