A voir également:
- [Java]Lancer un .bat à l'intérieur d'un .jar
- Creer un fichier .bat - Guide
- Logiciel aménagement intérieur - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Jeux java itel football - Télécharger - Jeux vidéo
6 réponses
demondu36
Messages postés
1172
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
6 janvier 2016
231
Modifié par demondu36 le 26/06/2012 à 14:19
Modifié par demondu36 le 26/06/2012 à 14:19
Salut,
Il te suffit juste te remplacer par tes fichiers ...
Code : import java.io.*; public class Launcher2 { public static void main(String[] args) { try { String[] command = { "cmd.exe", "/C", "Start", "C://run.bat" } Process child = Runtime.getRuntime().exec(command); } catch (IOException e) { e.printStackTrace(); } } }
Il te suffit juste te remplacer par tes fichiers ...
Je laisse ce chemin, ou je mets le chemin du .jar ?
Par exemple : C:/Users/moi/plugin.jar/start.bat ?
Sinon, merci de ta réponse rapide
Par exemple : C:/Users/moi/plugin.jar/start.bat ?
Sinon, merci de ta réponse rapide
demondu36
Messages postés
1172
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
6 janvier 2016
231
26 juin 2012 à 14:32
26 juin 2012 à 14:32
essaye les deux manieres je ne sais pas si sa va le perturber ou pas ...
Merci beaucoup pour ta réponse, en fait la solution était
Une dernière question, comment envoyer la même commande, mais avec un OS linux ?
String[] commande = { "cmd.exe", "/C", "start", "Start.bat" }; Runtime r = Runtime.getRuntime(); Process p = r.exec(commande); p.waitFor();
Une dernière question, comment envoyer la même commande, mais avec un OS linux ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
27 juin 2012 à 20:35
27 juin 2012 à 20:35
Au lieu de faire String[] commande = { "cmd.exe", "/C", "start", "Start.bat" };
Tu peux "directement" faire String[] commande = { "Start.bat" };
Comme ça c'est compatible avec Linux (sous réserve que le fichier .bat soit compatible)
Par contre, pour accéder au fichier qui est dans le JAR, c'est plus compliqué.
Je pense que le plus simple c'est de l'extraire dans un fichier temporaire avant de l'exécuter.
Tu peux "directement" faire String[] commande = { "Start.bat" };
Comme ça c'est compatible avec Linux (sous réserve que le fichier .bat soit compatible)
Par contre, pour accéder au fichier qui est dans le JAR, c'est plus compliqué.
Je pense que le plus simple c'est de l'extraire dans un fichier temporaire avant de l'exécuter.
Justement, ma méthode a fonctionné. Mais je vais tester la tienne, vu que le .bat et le .sh sont dans le .jar. J'explique en vitesse. En fait je veux que si le serveur tourne sous linux, il lance le .sh, sinon, s'il est en windows, il lance le .bat.
Regardez :
Les méthodes sont :
En sachant que le .sh et le .bat sont situés à la racine : plugin.jar/Start.bat et plugin.jar/Start.sh
Merci d'avance pour vos réponses
Regardez :
if(isWindows()) { String[] commande = { "cmd.exe", "/C", "start", "Start.bat" }; Runtime r = Runtime.getRuntime(); Process p = r.exec(commande); p.waitFor(); } else if(isUnix()) { String[] commande = {//La commande que je chercher}; Runtime r = Runtime.getRuntime(); Process p = r.exec(commande); p.waitFor(); } else { log.info("Systeme d\'exploitation inconnu"); }
Les méthodes sont :
public static boolean isUnix() { String os = System.getProperty("os.name").toLowerCase(); // linux ou unix return (os.indexOf("nix") >= 0 || os.indexOf("nux") >= 0); } //Windows public static boolean isWindows() { String os = System.getProperty("os.name").toLowerCase(); // windows return (os.indexOf("win") >= 0); }
En sachant que le .sh et le .bat sont situés à la racine : plugin.jar/Start.bat et plugin.jar/Start.sh
Merci d'avance pour vos réponses