Voilà je souhaite lancer un programme fonctionnant en ligne de commande (ffmpeg => encodeur vidéo) à partir d'un programme JAVA.
J'utilise la classe Runtime mais je n'obtiens pas le résultat escompté.
J'ai commencé par essayer de lancer bêtement le programme avec une ligne du genre : Process p = runtime.exec("c:/ffmpeg/ffmpeg.exe"); mais il ne se passe rien (ça compile, pas d'erreur à l'exécution et pas d'affichage).
Ensuite je suis partie sur l'idée de lancer une autre commande dos à partir du programme java et d'exécuter ffmpeg ds cette nouvelle commande. J'utilise pour cela la commande dos start mais j'obtiens alors une erreur à l'exécution. Voici mon code et l'erreur obtenue.
Pourtant la commande fonctionne très bien en ligne de commande mais ça génère une erreur dans mon programme JAVA. Je n'y comprend rien.
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 public class executer { public static void main(String[]args) { try { String[] cmd = {}; Runtime runtime = Runtime.getRuntime(); Process p = runtime.exec("start C:/ffmpeg/ffmpeg.exe"); p.waitFor(); } catch (Exception err) { err.printStackTrace(); } } }PS: Je réussi à lancer par exemple eclipse à partir de mon programme JAVA mais cela ne fonctionne pas avec ffmpeg car c'est un programme qui fonctionne en ligne de commande.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 java.io.IOException: CreateProcess: start C:/ffmpeg/ffmpeg.exe error=2 at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(ProcessImpl.java:81) at java.lang.ProcessImpl.start(ProcessImpl.java:30) at java.lang.ProcessBuilder.start(ProcessBuilder.java:451) at java.lang.Runtime.exec(Runtime.java:591) at java.lang.Runtime.exec(Runtime.java:429) at java.lang.Runtime.exec(Runtime.java:326) at executer.main(executer.java:12)
Si qqn pouvait me venir en aide ce serait pas de refus...
Partager