Problème de Runtime.exec()
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 :
Code:
lp -c -onobanner /tmp/nomFichier
J'ai donc essayé la fonction :
Code:
1 2 3
|
Runtime.getRuntime().exec("lp -c -onobanner /tmp/nomFichier"); |
Ainsi que :
Code:
1 2 3 4 5 6 7
|
Runtime.getRuntime().exec(new String[]{
"lp",
"-c",
"-onobanner",
"/tmp/nomFichier"}
); |
Ce qui me donne une jolie exception dans les deux cas :
Code:
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 |
Le fichier existe bel et bien, je vérifie son existence avant de lancer la commande :
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
|
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();
} |
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...
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