IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

[Système] lancer vlc en java


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 159
    Par défaut [Système] lancer vlc en java
    Bonjour

    Je voudrais savoir comment on peut faire un programme en java qui lance l'équivalent d'une ligne de commande (pour lancer vlc entre autre)

    Si ça exixte pas, peut-on faire ça en C ?

    Merci d'avance

    Mad

  2. #2
    Membre éclairé Avatar de spilliaert
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Par défaut
    tu veux dire, exécuter une commande dos ?

    c'est possible...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import java.io.*;
    public class Exe
    {
       public static void main(String[] args) throws IOException
       {
          Process p = Runtime.getRuntime().exec(args);
          }
    }
    voila, là il exécute la commande qu'il reçoit en argument.

    j'espère t'avoir été utile...

    @+

  3. #3
    Membre éprouvé Avatar de Oui-Oui MB
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2005
    Messages : 111
    Par défaut
    Sinon tu peux aussi le faire en C en executant un nouveau processus mais je me souvient plus trop de la fonction a appeler...

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Philippines

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2005
    Messages : 244
    Par défaut
    En c tu utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System("start c:\path\monexe.exe");
    Pour java, il y a la reponse 2 post plus haut

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 159
    Par défaut
    Ok je vais essayer tout ça
    Merci beaucoup

    Mad

  6. #6
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Il faut aussi ouvrir l'invite de commande pour le faire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("cmd /C tonchemin/vlc.exe");

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par BiMouXeTTe
    Il faut aussi ouvrir l'invite de commande pour le faire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("cmd /C tonchemin/vlc.exe");
    Pourquoi ouvrir l'invite de commande système pour lancer un exécutable ?
    Lancer directement VLC permet de conserver un code a peut près protable (du moment que le chemin vers VLC est paramétrable).

    a++

  8. #8
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Elle ne se lance pas vraiment, mais si tu la lances directement ton application ca ne fonctionne pas, en tout cas c'est ce que j'ai constaté ou alors peut etre que je me trompe :S

  9. #9
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par BiMouXeTTe
    Elle ne se lance pas vraiment, mais si tu la lances directement ton application ca ne fonctionne pas, en tout cas c'est ce que j'ai constaté ou alors peut etre que je me trompe :S
    Ce n'est vrai que pour les commandes systèmes tels que dir qui ne sont pas de vrai exécutable : ce sont des commandes qui sont intégré dans cmd.exe (ou comand.com sous Win9x).

    a++

  10. #10
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Et les bat non ? Ah bon d'accord... lol merci pour l'info.

  11. #11
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Et est-ce que c'est possible de lancer une application telle que VLC, mais en mode "caché" (l'interface ne s'affiche pas, mais on peut enregistrer par exemple)?

  12. #12
    Membre éprouvé Avatar de White Rabbit
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 122
    Par défaut
    A enregistrer dans LancerVLC.java :

    Avec les chemins "en dur" (remarquez les double \ !) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import java.io.IOException;
     
    class LancerVLC{
      public static void main(String[] args) {
        try {
            String[] command = new String[] {"C:\\Program Files\\VideoLAN\\VLC\\vlc.exe", "C:\\test\\jarhead.avi"};
            Process child = Runtime.getRuntime().exec(command);
        } catch (IOException e) {
           System.out.println(e.getMessage());
        }
      }
    }
    Avec les chemins à entrer à l'execution de java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import java.io.IOException;
     
    class LancerVLC{
      public static void main(String[] args) {
        try {
          // on utilise args qui sont les paramètres du programme
          process child = Runtime.getRuntime().exec(args);
        } catch (IOException e) {
           System.out.println(e.getMessage());
        }
      }
    }
    • Et on execute avec : >java -cp . LancerVLC "C:\program files\videolan\vlc\vlc" C:\test\jarhead.avi



    remarques :
    utiliser les "" si il ya des espaces dans les chemins
    les majuscules sont optionnelles avec windows


    jarhead.avi (la bande annonce en DivX HD !!!)

  13. #13
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Et en mode "caché"?

  14. #14
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Je vais faire une remarque. L'interet des java est que c'est un langage tres portable. Il faut essayer tant bien que mal de concerver cette portabilite. Donc la chose a eviter c'est de mettre un chemin en dur dans le code. Donc
    proscrire tout ce qui est du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String[] command = new String[] {"C:\\Program Files\\VideoLAN\\VLC\\vlc.exe", "C:\\test\\jarhead.avi"};
            Process child = Runtime.getRuntime().exec(command);
    Et ceci pour plusieurs raisons :
    1/ sur les plateformes de type Unix ( GNU/Linux, Mac OS, BSD, etc... ) t'es dans les choux. Pour resoudre ce probleme tu dois utiliser la constante File.separator ou File.pathSeparator ( je me souviens plus laquelle exactement mais vas faire un tour dans la javadoc, ca peut pas faire de mal ).

    2/ Supposons que tu ais resolu ce probleme. Il y a quelque chose de tres important : tu as rentre l'emplacement de VLC en dur dans le code. Que ce soit toi demain qui change de version de VLC et que tu decides de ne pas utiliser le meme repertoire ou que ce soit un autre utilisateur de ton appli qui ait decide ( ou ete contrait car il bose sous linux par exemple ) de ne pas placer dans le meme repertoire que celui que tu as decide au moment du code, et bien t'aura un gros probleme. Si c'est toi, tu vas me repondre que tu peux modifier ton code et recompiler. Par contre, si c'est pas toi, mais un de tes utilisateurs, il pourra peut etre rien faire ( il n'a pas les source, ou n'a pas les connaissances ou droit de modifier et recompiler ton code ). Comme je suis sympa, je vais te donner plusieurs solutions. La permiere est de passer par un fichier de conf ou sera specifier l'emplacement de vlc, un peu a la methode des fichiers de conf des systemes *n*x. La seconde est permettre a l'utilisateur de modifier a l'aide d'option et de sauvegarder a un endroit l'emplacement. Il y en a encore d'autres, a ta de chercher et de choisir la solution.

    Pour repondre a la question sur le fait de "cacher" vlc, je ne sais pas si c'est possible. Le plus simple est a mon avis d'aller jeter un coup d'oeil a la doc de vlc directement. Une autre solution est peut etre d'utiliser un autre player en ligne de commande comme mplayer, le probleme est que c'est un player linux mais il j'avais entendu dire qu'il y avait des portages sous windows. Bref, si tu n'es pas contraint a utiliser vlc, pourquoi pas utiliser cette solution. Dans tous les cas, tu peux aussi passer par le fichier de conf et permettre a l'utilisateur de specifier son player favori ( chose que j'apprecie car je ne supporte pas que l'on lance par exemple Windows Media Player a la place de mon player prefere ... )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment lancer VLC a partir un programme java ?
    Par khaledzz9 dans le forum Général Java
    Réponses: 2
    Dernier message: 18/01/2009, 16h26
  2. [Système] Lancer VLC avec system() sous windows
    Par madislak dans le forum Langage
    Réponses: 2
    Dernier message: 15/07/2007, 03h25
  3. [Système] lancer un programme Java via PHP
    Par bibiwan14 dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2007, 15h13
  4. Réponses: 7
    Dernier message: 24/03/2005, 16h55
  5. [Système] Lancer un script Perl
    Par ebaynaud dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 14/10/2004, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo