Appel d'un code linux sous une appli java
Fermé
malaik5
Messages postés
258
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
-
3 sept. 2012 à 13:51
malaik5 Messages postés 258 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 28 novembre 2013 - 3 sept. 2012 à 16:12
malaik5 Messages postés 258 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 28 novembre 2013 - 3 sept. 2012 à 16:12
A voir également:
- Appel d'un code linux sous une appli java
- Appel masqué - Guide
- Renvoi d'appel ooredoo ✓ - Forum Mobile
- Jeux java itel ✓ - Forum Jeux vidéo
- Java runtime - Télécharger - Langages
- Java apk - Télécharger - Langages
4 réponses
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
3 sept. 2012 à 14:17
3 sept. 2012 à 14:17
Si c'est des appels système, tu peux utiliser exec
Exemple :
Et s'il est nécessaire de récupérer le résultat de la commande :
Exemple :
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("ls"); // c'est bidon, je sais
Et s'il est nécessaire de récupérer le résultat de la commande :
Scanner out = new Scanner(process.getInputStream());
while (out.hasNextLine())
System.out.println(out.nextLine());
out.close();
Scanner err = new Scanner(process.getErrorStream());
while (err.hasNextLine())
System.err.println(out.nextLine());
err.close();
malaik5
Messages postés
258
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
32
3 sept. 2012 à 14:32
3 sept. 2012 à 14:32
Slt KX,
je ne sais pas si tu te rappelles de moi, on a partagé une discussion lmors d'un sujet dans forum, bon présentation faite :),
voilà le soucis avec ce que tu m'as donné (que j'ai déjà vu), comment tu précise le serveur cible ?
je ne sais pas si tu te rappelles de moi, on a partagé une discussion lmors d'un sujet dans forum, bon présentation faite :),
voilà le soucis avec ce que tu m'as donné (que j'ai déjà vu), comment tu précise le serveur cible ?
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
3 sept. 2012 à 14:39
3 sept. 2012 à 14:39
Si c'est une commande Linux ("commandes que je mets en dur dans le code qui vont être exécutées"), j'imagine que le serveur sera lui aussi précisé en dur dans la commande...
Après, ta question relève peut-être plus de comment écrire ta commande système, que de comment l'implémenter en Java !
Après, ta question relève peut-être plus de comment écrire ta commande système, que de comment l'implémenter en Java !
malaik5
Messages postés
258
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
32
Modifié par malaik5 le 3/09/2012 à 14:55
Modifié par malaik5 le 3/09/2012 à 14:55
non c'est une implémentation Java,
public static void main(String[] arg){
try{
JSch jsch=new JSch();
//jsch.setKnownHosts("/home/foo/.ssh/known_hosts");
String host=null;
if(arg.length>0){
host=arg[0];
}
else{
host=JOptionPane.showInputDialog("Enter username@hostname",
System.getProperty("user.name")+
"@serveur");
}
String user=host.substring(0, host.indexOf('@'));
host=host.substring(host.indexOf('@')+1);
Session session=jsch.getSession(user, host, 22);
String passwd = JOptionPane.showInputDialog("Pass");
session.setPassword(passwd);
UserInfo ui = new MyUserInfo(){
public void showMessage(String message){
JOptionPane.showMessageDialog(null, message);
}
public boolean promptYesNo(String message){
Object[] options={ "yes", "no" };
int foo=JOptionPane.showOptionDialog(null,
message,
"Warning",
JOptionPane.DEFAULT_OPTION,
JOptionPane.WARNING_MESSAGE,
null, options, options[0]);
return foo==0;
}
};
session.setUserInfo(ui);
session.connect(30000); // making a connection with timeout.
Channel channel=session.openChannel("shell");
channel.setInputStream(System.in);
channel.setOutputStream(System.out);
channel.connect(3*1000);
}
catch(Exception e){
System.out.println(e);
}
}
public static void main(String[] arg){
try{
JSch jsch=new JSch();
//jsch.setKnownHosts("/home/foo/.ssh/known_hosts");
String host=null;
if(arg.length>0){
host=arg[0];
}
else{
host=JOptionPane.showInputDialog("Enter username@hostname",
System.getProperty("user.name")+
"@serveur");
}
String user=host.substring(0, host.indexOf('@'));
host=host.substring(host.indexOf('@')+1);
Session session=jsch.getSession(user, host, 22);
String passwd = JOptionPane.showInputDialog("Pass");
session.setPassword(passwd);
UserInfo ui = new MyUserInfo(){
public void showMessage(String message){
JOptionPane.showMessageDialog(null, message);
}
public boolean promptYesNo(String message){
Object[] options={ "yes", "no" };
int foo=JOptionPane.showOptionDialog(null,
message,
"Warning",
JOptionPane.DEFAULT_OPTION,
JOptionPane.WARNING_MESSAGE,
null, options, options[0]);
return foo==0;
}
};
session.setUserInfo(ui);
session.connect(30000); // making a connection with timeout.
Channel channel=session.openChannel("shell");
channel.setInputStream(System.in);
channel.setOutputStream(System.out);
channel.connect(3*1000);
}
catch(Exception e){
System.out.println(e);
}
}
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
3 sept. 2012 à 15:07
3 sept. 2012 à 15:07
Bravo ! Tu sais faire un copier-coller...
Mais vu que tu as trouvé le code de l'exemple 1, continue avec les autres !
Mais en quoi ça aide ? Si tu veux faire des appels systèmes en Java, il faut au minimum connaitre les commandes systèmes que tu veux effectuer, si tu veux passer par une bibliothèque comme JSch, alors regarde la documentation... mais ça sert à rien de balancer un code trouvé sur le net qui n'a probablement rien à voir avec ton problème !
Mais vu que tu as trouvé le code de l'exemple 1, continue avec les autres !
Mais en quoi ça aide ? Si tu veux faire des appels systèmes en Java, il faut au minimum connaitre les commandes systèmes que tu veux effectuer, si tu veux passer par une bibliothèque comme JSch, alors regarde la documentation... mais ça sert à rien de balancer un code trouvé sur le net qui n'a probablement rien à voir avec ton problème !
malaik5
Messages postés
258
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
32
3 sept. 2012 à 16:12
3 sept. 2012 à 16:12
Merci l'intelligent