2010-06-09 44 views
1

我製作了一個自定義java程序來輸出許可證,並試圖在php中運行它。PHP命令shell_exec()不適用於我的自定義Java應用程序5

$deviceid="12345"; 
$command_app = 'java -jar /home/myname/secure/mycommand.jar '; 
$privateKey = 'QEFAASCAmEwggJdAgE'; 
$command_app_args = "\"$privateKey\" deviceid=$deviceid"; 
$command=$command_app.$command_app_args; 
$license = shell_exec($command); 

的問題是,$許可證是空的每一次,我試着打印出使用

echo $command; 

的$命令,然後直接在Linux終端運行該命令和XML輸出是正確的。

我在Java應用程序中使用

System.out.println() 

打印所有的XML輸出。我嘗試了一些簡單的東西,如

shell_exec('ls -l') ; 

並確定如果工作。

我會做什麼錯?

+0

你得到'這java'什麼? – 2010-06-09 15:23:37

回答

2

我的第一個直覺是命令java不在PHP的shell路徑中。嘗試是這樣的:

$command_app = '`which java` -jar /home/myname/secure/mycommand.jar '; 

命令which java將完整路徑返回Java可執行...

+0

$ java ='which java'; echo $ java;什麼也沒產生,但是$ java ='ls -l'; echo $ java;工作 – jax 2010-06-09 17:12:19

+0

'哪個ls'產生/ bin/ls所以由於某種原因,php甚至不能使用哪個命令找到java – jax 2010-06-09 17:28:36

+0

我在php命令中使用了完整路徑/usr/java/jdk1.6.0/bin/java而不是Java和它的工作。 – jax 2010-06-09 17:44:51

相關問題