Lancer treetagger depuis un programme java sous ubunto [Résolu]

Lynda12 - 7 janv. 2013 à 11:53 - Dernière réponse : Twinuts 5280 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 3 octobre 2018 Dernière intervention
- 13 janv. 2013 à 12:31
Bonjour,

Je dois appeler treetagger depuis un programme java sous ubunto. Je sais le faire sous windows, mais mlehuereusement je suis novice en linux.

J'ai tout bêtement procédé par analogie à windows et j'ai rajouté sudo à la commande:
String cmd =" sudo tokenise-fr.pl cv_soumaya.txt | bin\tree-tagger.exe lib\french.par -lemma -token -sgml > resultat-etiquetage.txt"

mais ça ne marche pas, je ne sais pas comment exécuter cette commande en mode super utilisateur

Pourriez vous m'aider s'il vous plait

Merci d'avance
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Twinuts 5280 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 3 octobre 2018 Dernière intervention - 13 janv. 2013 à 12:31
3
Merci
Salut,

Autre point important, dans ton premiers poste tu sembles utiliser des chemins de fichiers avec comme séparateur un anti slash \ ce qui n'est pas bon.
En java (meme pour windows) favorise l'utilisation des slash tu auras moins de pb.


3eme poste de Julien: Le sudo depuis un soft Java n'est pas vraiment une bonne chose, soit tu exécutes directement ton application avec sudo, soit tu lui donnes le "sticky bit", soit tu exécutes (ça dépend du besoin) ton application via une application qui a les droits root (idéalement un runlevel ; rc.d)

Soit au mieux, si tu as besoin des droits root, tu test l'identifiant(uid/gid) pour voir si celui qui exécute ton soft possède les bon droits et dans le cas contraire tu lui affiches simplement un message. En procédant ainsi tu laisses l'utilisateur choisir la solution de son gout pour exécuter ton soft (sudo n'est pas une commande par défaut sous linux)


-----

"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de Twinuts
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 7 janv. 2013 à 13:46
0
Merci
Salut,

Sous ubuntu, pour exécuter une commande en mode super utilisateur, il faut utiliser la commande sudo.

Pour lancer une commande tu peux utiliser la classe Runtime : http://www.javafr.com/codes/EXEMPLE-UTILISATION-CLASSE-RUNTIME_54094.aspx
Commenter la réponse de cs_Julien39
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 7 janv. 2013 à 13:48
0
Merci
Je n'avais pas fais attention, mais tu vas avoir un soucis : Runtime ne créé pas un shell, elle permet juste de lancer des commande et de récupérer les flux de sortie. Tu ne pourras donc pas accéder aux redirections (donc tu peux dire adieu au pipe)

Pour s'en sortir, créé un fichier .sh qui contient ta commande et exécute avec la classe Runtime le fichier .sh qui sera interprété par l’interpréteur de ton système et qui saura mettre en place les redirections.
Commenter la réponse de cs_Julien39
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 7 janv. 2013 à 13:49
0
Merci
Et une dernière chose : pour lancer ta commande en mode super utilisateur, tu ferais mieux de lancer directement ton java avec les droits de super utilisateur. Ce n'est pas terrible de faire un sudo dans une commande interne, a priori, tu ne connais pas le mot de passe du super utilisateur donc, tu ne peux pas le faire. Il faut que ce soit lui qui lance ton java comme un super user et qui entre son mot de passe à ce moment là.
Commenter la réponse de cs_Julien39
0
Merci
Merci beaucoup Julien pr ta réponse
Commenter la réponse de Lynda12

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.