2016-07-08 32 views
7

Sto cercando di eseguire un'applicazione .jar da PHP utilizzando exec:PHP: 'java' non è riconosciuto come comando interno o esterno

exec('java -jar parser.jar $inputstring 2>&1', $output); 

posso farlo funzionare su cmd, e Java -versione ritorna così ho installato java. Sembra che questo sia un problema di percorso, ma sono alla fine.

Ho provato a specificare il percorso completo, aggiungendo C: \ Programmi (x86) \ Java \ jdk1.8.0_91 \ bin; a System Variables, usando shell_exec, senza alcun risultato. Ho fatto lo stesso errore.

Qualsiasi aiuto sarebbe molto apprezzato.

+3

Mostrare come si è aggiunto il percorso completo. ci sono degli spazi lì dentro. se non hai citato il percorso, ad es. 'shell_exec ('" C: \ Programmi \ .... ")', quindi tenterai di eseguire un programma chiamato 'c: \ program.exe', con argomento' files \ .... ' –

+0

Ho: shell_exec ('"C: \ Programmi (x86) \ Java \ jdk1.8.0_91 \ bin \ java.exe" -jar parser.jar $ inputstring 2> &1'); Se non ho 2> & 1 è vuoto Con esso ottengo lo stesso errore 'java' non riconosciuto – Anda

+0

2> & 1 reindirizza stderr a stdout, motivo per cui si ottiene il messaggio di errore. shell_exec restituisce solo stdout, quindi non si vedrà mai il messaggio di errore –

risposta

0

Utilizzare questo ....

exec('java -jar parser.jar '.$inputstring.'2>&1', $output); 
or 
shell_exec("java -jar parser.jar $inputstring 2>&1 $output"); 
or 
string exec ('java -jar parser.jar' [, array &$output [, int &$return_var ]])