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

- - Dernière réponse : Twinuts
Messages postés
5298
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
3 décembre 2018
- 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
Messages postés
5298
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
3 décembre 2018
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

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Twinuts
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
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
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
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
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
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.