comment je peux redémarrer le micro depuis mon application java.
j' utilise ubuntu.
comment je peux redémarrer le micro depuis mon application java.
j' utilise ubuntu.
La seule façon est d'utiliser la classe Runtime pour exécuter une commande système :
- "reboot" pour rebooter
- "halt" pour arrêter
Pour que cela fonctionne, l'utilisateur qui lance le programme doit être "root".
Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
Mes articles et tutoriaux & Mon blog informatique
il y a t-il un methode pour devenir le root ;
sudo dans java, mais je ne suis pas sûr que ça marche ...
sinon, tu peux aussi lancer java en root
Le plus simple, comme le dit PierreD87, est de lancer directement ton programme depuis l'utilisateur "root".
Sinon, on peut effectivement contourner, mais il faut connaître le mot de passe (s'il en a un) de l'utilisateur root.
Sur Ubuntu (où le mot de passe root est inconnu dans une installation standard), il faudra plutôt passer par un sudo (l'utilisateur lançant java doit être dans la liste des "sudoers", et il faut que l'application connaisse son mot de passe).
Cependant, "devenir root" va nécessiter plus de connaissance en Java : il va falloir interagir avec la console, pour enchaîner les différents ordres, la saisie des mots de passe, etc.
Il va donc falloir traiter les "flux d'entrée/sortie" de la commande que tu lances.
cf. les posts déjà existants à ce sujet dans le forum...
Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
Mes articles et tutoriaux & Mon blog informatique
Ça va être plus problématique que ça, vu que sudo, ne peut pas prendre de mot de passe en paramètre et ne le lit pas non plus depuis l'entrée standard.Cependant, "devenir root" va nécessiter plus de connaissance en Java : il va falloir interagir avec la console, pour enchaîner les différents ordres, la saisie des mots de passe, etc.
Il va donc falloir traiter les "flux d'entrée/sortie" de la commande que tu lances.
Le plus simple serait d'utiliser gksudo, mais l'utilisateur aura a saisir son mot de passe à chaque fois.
Une autre solution est de lancer "reboot" dans un shellscript appartenant à root avec les droits SetUid (fichier exécutable par les utilisateur avec les droits du propriétaire du fichier). Il faudrait le droit root pour créer ce script et lui mettre les bon droits(via gksudo par exemple), mais une fois cela fait, il peut être réutilisé à volonté.
Partager