Ouvrir un jar console depuis un jar console
Bonjour,
Je suis en train de créé une application java console qui est démarré par un launcher console (aussi java), qui vérifie si il y a des mise a jour et démarre automatiquement le programme.
Le problème est que j'ai essayé toutes les possibilités que j'ai trouvé pour démarrer un jar de depuis un programme java mais aucune ne marche sauf une mais qui n'arrive pas à gérer les Scanner. (celle-ci utilise des BufferedReader, voir en bas)
J'ai essayé
Code:
Runtime.getRuntime().exec("java -jar monjar.jar");
mais aussi
Code:
Desktop.getDesktop().open(new File("chemin\du\jar.jar));
ou encore
Code:
1 2 3
| ProcessBuilder pb = new ProcessBuilder("java", "-jar", "monjar.jar");
pb.directory(new File("chemin\du\dossier\du\jar"));
Process p = pb.start(); |
mais rien ne marche.
Code de la fonction qui marche mais qui ne gère pas les scanner
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
public class JarRunner {
public JarRunner(String file) {
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "monjar");
pb.directory(new File("jar"+File.separator));
try {
Process p = pb.start();
LogStreamReader lsr = new LogStreamReader(p.getInputStream(), p.getOutputStream());
Thread thread = new Thread(lsr, "LogStreamReader");
thread.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
class LogStreamReader implements Runnable {
private BufferedReader reader;
public LogStreamReader(InputStream is, OutputStream os) {
this.reader = new BufferedReader(new InputStreamReader(is));
}
public void run() {
try {
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} |
Merci d'avance pour vos réponse :)