java
  • php
  • 2010-06-09 4 views 1 likes 
    1

    J'ai créé un programme Java personnalisé pour générer une licence et j'essaie de l'exécuter en php.La commande PHP shell_exec() ne fonctionne pas pour mon application Java personnalisée5

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

    Le problème est que la licence de $ est vide à chaque fois, j'ai essayé d'imprimer la commande $ en utilisant

    echo $command; 
    

    puis a couru cette commande directement dans le terminal Linux et la sortie xml était correcte .

    J'utilise

    System.out.println() 
    

    dans l'application java pour imprimer toute la sortie XML. J'ai essayé quelque chose de simple comme

    shell_exec('ls -l') ; 
    

    et bien sûr si travaillé.

    Que pourrais-je faire de mal?

    +0

    Qu'est-ce que vous obtenez pour 'qui java'? –

    Répondre

    2

    Mon premier instinct est que la commande java n'est pas dans le shell shell de PHP. Essayez quelque chose comme ceci:

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

    La commande which java renverra le chemin complet vers l'exécutable java ...

    +0

    $ java = 'which java'; echo $ java; n'a rien produit, cependant $ java = 'ls -l'; echo $ java; travaillé – jax

    +0

    'qui a produit/bin/ls donc pour une raison quelconque php ne peut pas trouver java même avec la commande – jax

    +0

    J'ai utilisé le chemin complet /usr/java/jdk1.6.0/bin/java dans la commande php au lieu de Java et ça a marché. – jax

    Questions connexes