Bonjour,
J'ai un gros problème avec la fonction Runtime.getRuntime().exec().
J'ai un programme Java lancé depuis linux via un jar exécutable. Dans ce programme je dois appeler la commande suivante :
J'ai donc essayé la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part lp -c -onobanner /tmp/nomFichier
Ainsi que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Runtime.getRuntime().exec("lp -c -onobanner /tmp/nomFichier");
Ce qui me donne une jolie exception dans les deux cas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Runtime.getRuntime().exec(new String[]{ "lp", "-c", "-onobanner", "/tmp/nomFichier"} );
Le fichier existe bel et bien, je vérifie son existence avant de lancer la commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 java.io.IOException: Cannot run program "lp": java.io.IOException:error=2, No such file or directory ... blabla Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.<init>(UNIXProcess.java:148) at java.lang.ProcessImpl.start(ProcessImpl.java:65) at java.lang.ProcessBuilder.start(ProcessBuilder.java:453) ... 31 more
Je ne comprends pas le problème... J'ai déjà utilisé cette fonction sur des commande type chmod (sur des fichiers dans le même répertoire). Et je n'ai jamais eut de soucis...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 String pathTempFile = "/tmp/nomFichier"; File file = new File(pathTempFile); try { FileWriter writer = new FileWriter(pathTempFile, false); try { writer.write(txtArea.getText(),0,txtArea.getText().length()); if ( file.exists()){ // String cmd = "lp -c -onobanner " + pathTempFile; // Runtime.getRuntime().exec(cmd); Runtime.getRuntime().exec(new String[]{ "lp","-c", "-onobanner", "/tmp/nomFichier"}); } } finally { writer.close(); if ( file.exists()){ file.delete(); } } } catch (IOException e) { e.printStackTrace(); }
J'ai pensé que ça pouvait venir du writer qui n'était pas fermé avant. Mais même en le fermant avant. J'ai exactement la même exception.
Si quelqu'un peut m'aider, je le remercie d'avance.
Shaina
Partager