Process marche sous windows, pas sous linux [Java] - Java - Programmation
Marsh Posté le 12-01-2006 à 21:24:46
ton appli java est executée par le meme user que toi quand tu essaies de lancer le script à la main?
Marsh Posté le 12-01-2006 à 21:28:08
Je lance le projet depuis eclipse ou en ligne de commande, logué en user. -> marche pas
Je lance aussi le script perl dans une console en user. -> marche
Marsh Posté le 12-01-2006 à 21:45:55
et "marche pas", ça veut dire quoi, à vrai dire ?
Marsh Posté le 12-01-2006 à 22:04:19
Il n'y a pas d'erreur d'execution, et ca ne rentre pas dans le catch.
La commande ne fait rien : pas de temps d'execution ni de fichiers produit.
J'ai affiché le retour avec exitValue() qui est égale à 2 !?
Marsh Posté le 12-01-2006 à 22:09:21
lire la javadoc ça aide, hein, de temps en temps ....
http://java.sun.com/j2se/1.4.2/doc [...] orStream()
Marsh Posté le 12-01-2006 à 22:11:33
Je sais que 0 indique une terminaise normal. Mais je n'ai pas trouvé ce que 2 signifie et comment résoudre ce problème.
J'ai déjà essayer sans
Code :
|
et j'ai aucun changements. Je vais revérifier.
Marsh Posté le 13-01-2006 à 00:24:15
En fesant juste :
Code :
|
ca ne marche pas. J'ai toujours un code d'erreur 2 en retour, et aucun fichier créer.
Marsh Posté le 13-01-2006 à 00:39:39
tu t'es donc vraiment arreté à la moitié de mon post, et tu t'es pas dit que ptet y'avait effectivement un truc qui t'aiderait dans la javadoc ? (truc qui, donc, se trouve dans la deuxieme moitié de mon post que tu as zappé...)
Marsh Posté le 13-01-2006 à 00:59:46
Oui je viend d'essayer getErrorStream.
Quand je fais
Code :
|
J'obtiens la commande
perl rep/fichiers/perl.pl "adf" "" "45" "456" "43" "416"
qui marche dans le terminal.
Mais quand je la lance dans Process, le parametre "" est mal interprete par le script perl ce qui le fait s'arreter (die). Je ne sais pas quoi faire pour que ce parametre soit passé correctement.
Le script perl vérifie que :
Code :
|
Lancer en ligne de commande, c'est verifier,
Lancer depuis Process, c'est pas vérifier... !?
Marsh Posté le 13-01-2006 à 01:03:32
(euh, new String() ça sert à rien, hein)
Marsh Posté le 13-01-2006 à 01:06:09
à part ça, je sais pas trop - essaye avec des ' au lieu des " ?
Marsh Posté le 13-01-2006 à 11:41:04
J'ai essayer avec des ', ca ne change rien.
J'ai ajouter un print :
Code :
|
En ligne de commande j'obtient pour résultat :
2eme_param=
fichier created.
Ok.
Dans le proccess j'obtient :
Error: Unable to read ""
2eme_param=""
Comment faire pour passer un argument vide ?
Marsh Posté le 13-01-2006 à 12:42:33
mais qu'est-ce que c'est que ce script qui attend un argument vide et n'accepte rien d'autre ?
vire l'argument
Marsh Posté le 13-01-2006 à 14:50:00
des fois, l'argument n'est pas vide, et ce n'est pas moi qui ai fait ce script.
Marsh Posté le 13-01-2006 à 18:34:25
ben qd il pas vide il die() ton script non ?
Marsh Posté le 12-01-2006 à 21:00:48
Bonjour,
J'utilise un Process pour lancer un script perl.
J'ai testé avec succès cette partie de code sous windows.
seulement, sous linux, le script ne se lance pas. Pourtant quand je tape la commande passé en paramétre, elle fonctionne.
Ce script créer un fichier. Je me demande si ce n'est pas un problème de droit en écriture.
J'ai cherché longtemps et je ne trouve pas d'explications.
Merci d'avance pour vos réponses.
Message édité par hugo25 le 12-01-2006 à 21:05:38