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

Langage Java Discussion :

[MAC] ouvrir une application


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Points : 63
    Points
    63
    Par défaut [MAC] ouvrir une application
    Bonjour,
    Comment faire pour lancer une app avec une ligne de code java ? Itunes par exemple ?
    s'il vous plait

    Il ne se passe rien quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    try{
        Runtime.getRuntime().exec("open Applications/iTunes.app");
    }catch...

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    D'abord, tu dois mettre le chemin complet vers l'application, donc un truc du style /Applications/iTunes.app.

    Ensuite, si c'est toujours comme il y a 6 ans quand j'ai fais du dev java sous mac, iTunes.app n'est qu'un répertoire. Le browser d'apple comprend ça comme une application, mais ca reste un répertoire. C'est à l'intérieur de ce répertoire que se trouve l'exécutable, que tu dois viser avec exec().

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 846
    Points
    22 846
    Billets dans le blog
    51
    Par défaut
    D'apres How to run a Mac application From Java?, on peut utiliser l'intégration Desktop pour lancer des répertoires app :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Desktop.getDesktop().open(new File("MyLineInInput.app"));
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par bouye Voir le message
    D'apres How to run a Mac application From Java?, on peut utiliser l'intégration Desktop pour lancer des répertoires app :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Desktop.getDesktop().open(new File("MyLineInInput.app"));
    Merci beaucoup, j'utilise ça en effet, mais ça fonctionne pas en plein écran le raccourcis s'ouvre pas alors que sinon il s'ouvre

    Code java : 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
    fatigueButton.addActionListener ( new ActionListener ()
                {
                	//JOptionPane.showMessageDialog(null, l);
                	//JLabel l = new JLabel(
                    //        "The quick brown fox jumps over the lazy dog. 0123456789");
                    @Override
                    public void actionPerformed(ActionEvent e) {
                    	Date now = new Date();
                		SimpleDateFormat format = new SimpleDateFormat("HH");//dd MM yyyy à 
                		String heure = format.format(now).toString();
                		int heurei = Integer.parseInt(heure);
                		if(heurei>17&&heurei<0){
                            try {
                                File myFile = new File("/Users/THEO/Applications/iTunes.app");
                                Desktop.getDesktop().open(myFile);
                            } catch (IOException ex) {
                                // no application registered for PDFs
                            }
                		}
                    	//Si 2h du matin alors String shutdownCommand;
                    	onglets.setSelectedIndex(1);
                    }
                });
    Voila ma frame :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     frame.setLocationByPlatform(true);
                frame.pack();
                frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
                frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
                frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE);
                frame.setAlwaysOnTop(true);
                GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].setFullScreenWindow(frame);
                frame.setVisible(true);

  5. #5
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 552
    Points : 15 463
    Points
    15 463
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Ensuite, si c'est toujours comme il y a 6 ans quand j'ai fais du dev java sous mac, iTunes.app n'est qu'un répertoire. Le browser d'apple comprend ça comme une application, mais ca reste un répertoire. C'est à l'intérieur de ce répertoire que se trouve l'exécutable, que tu dois viser avec exec().
    En effet mais, comme "start" sous windows et "xdg-open" sous Linux, la commande "open" analyse le type de ce qui lui est passé en paramètre pour l'exécuter directement ou l'ouvrir avec le logiciel associé.
    Il sait donc entre autre traiter les répertoires d'application et saura démarrer l'exécutable correspondant.

    Citation Envoyé par To175 Voir le message
    Merci beaucoup, j'utilise ça en effet, mais ça fonctionne pas en plein écran le raccourcis s'ouvre pas alors que sinon il s'ouvre
    Tu es sur qu'il ne s'ouvre pas simplement en arrière plan, et que tu ne le vois pas car tu es en plein écran?

    Sinon tu devrais au moins mettre un ex.printStackTrace(); dans ton catch. Les catch vide sont généralement une très mauvaise pratique qui font disparaitre des messages d'erreur utiles.

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Uther Voir le message
    En effet mais, comme "start" sous windows et "xdg-open" sous Linux, la commande "open" analyse le type de ce qui lui est passé en paramètre pour l'exécuter directement ou l'ouvrir avec le logiciel associé.
    Il sait donc entre autre traiter les répertoires d'application et saura démarrer l'exécutable correspondant.
    De fait, mais dans ce dernier cas, aucun accès aux streams de l'application, aucun retour quand elle se ferme, pas d'accès au pid etc Bref c'est bien si le besoin s'arrête à lancer.

Discussions similaires

  1. Comment ouvrir une application et un sous menu
    Par m14w dans le forum Delphi
    Réponses: 2
    Dernier message: 28/09/2006, 00h58
  2. ouvrir une application du tray
    Par rvicko dans le forum Delphi
    Réponses: 3
    Dernier message: 25/09/2006, 11h02
  3. Ouvrir une application
    Par liverbird dans le forum C++
    Réponses: 10
    Dernier message: 13/07/2006, 20h43
  4. ouvrir une application access périodiquement
    Par cheucheu dans le forum Access
    Réponses: 6
    Dernier message: 22/12/2005, 17h53
  5. Réponses: 1
    Dernier message: 31/10/2002, 12h55

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