IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] fonction exec() avec Java


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 8
    Points
    8
    Par défaut [Système] fonction exec() avec Java
    Bonjour,
    Je rencontre un problème avec la fonction exec().
    Je veux éxécuter une classe java faisant appel à d'autre classes et récupérer la sortie output grace au deuxième paramètre.

    Mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            $commande ='java Search nv2 software';
     
    	echo exec($commande,$sortie,$retourne);
     
    	foreach($sortie as $valeur)
    	{
    		echo $valeur,'<br/>';
    	}
            echo $retourne;
    $retourne vaut 1 lors de l'affichage et le foreach n'affiche rien. Pourtant, java marche bien avec un simple HelloWorld. La commande marche sur l'invite de commandes aussi , je précise que je suis sous windows xp.
    A ton le droit de mettre des parametres comme je l'ai fait dans la commande et avez vous une idée du problème ?
    Merci d'avance

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Avec les fonctions du style exec(), il y a 1 chose indispensable à vérifier : le path. La commande java est-elle dans le path ? Y a de fortes chances que non. Généralement, le path est minimaliste et ne doit contient pas contenir le répertoire de ton JRE.

    Si la commande java est bien dans le path, regarde le répertoire dans lequel tu te places, i.e. la classe Search doit se retrouver dans le répertoire "courant". Par répertoire "courant", j'entends le répertoire courant du fork exécuté par exec().

    3ème chose, vérifie ton classpath : idem que pour le path, les variables d'environnement sont réduites à l'essentiel ton le classpath n'est sûrement pas défini.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Merci, mais sur l'invite de commande, il n'y a pas de problème. La classe s'éxécute bien. J'ai défini le PATH et le CLASSPATH, sinon ça ne marchait pas. Mais je rencontre toujours l'erreur.
    Faut-il aussi définit le PATH et CLASSPATH par un exec en plus des commandes

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Le répertoire doit être le bon aussi, j'ai essayé en remplacant le contenu de la classe Search par un simple System.out.println(), le foreach m'affiche bien ce résultat.
    Je ne l'ai pas écrit, mais je change de répertoire avant avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chdir('c:\repertoire_de_search')

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Je suis arrivé à faire afficher l'erreur sur la sortie out. Effectivement, il ne trouve pas mes classes.
    Que faire ?

Discussions similaires

  1. [Système] Fonction exec() et assimilées
    Par guidav dans le forum Langage
    Réponses: 4
    Dernier message: 24/04/2007, 10h41
  2. [Système] Utiliser exec() avec kill
    Par lepec dans le forum Langage
    Réponses: 9
    Dernier message: 24/01/2007, 18h53
  3. [Système] Fonction exec dans un lien et synthaxe
    Par mLk92 dans le forum Langage
    Réponses: 6
    Dernier message: 13/07/2006, 11h45
  4. [Système] Interfacer PHP avec Java
    Par guipom dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2006, 18h35
  5. Les Système Multi-agent avec Java
    Par oussam dans le forum Langage
    Réponses: 1
    Dernier message: 09/02/2006, 00h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo