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 :

[JDIC] Ouverture d'une url dans un navigateur avec jdic


Sujet :

API standards et tierces Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Points : 56
    Points
    56
    Par défaut [JDIC] Ouverture d'une url dans un navigateur avec jdic
    Bonjour,
    Je voudrais ouvrir une URL dans le navigateur par défaut du système, de façon à ce que mon code reste portable. Après quelques recherches, j'ai découvert qu'il fallait utiliser la librairie jdic, que j'ai donc installée, et inclue à mon projet (sous netbeans : clic droit sur le projet, propriétés, librairies, add jar folder).

    Mon programme se compile sans problème, mais lors de l'éxecution, j'obtiens une erreur lors de l'appel à Desktop.browse(monUrl);

    Voilà le code utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    try{
                URL monUrl = new URL("http://www.developpez.net");
                try{
                    Desktop.browse(monUrl);
                }
                catch(org.jdesktop.jdic.desktop.DesktopException e){
                    errorMessage errorMessageWindow = new errorMessage(this, true, e.toString());
                    errorMessageWindow.setVisible(true);
                }
            }
            catch(java.net.MalformedURLException e){
                errorMessage errorMessageWindow = new errorMessage(this, true, e.toString());
                errorMessageWindow.setVisible(true);
            }
    Et l'erreur retournée
    java.lang.ClassNotFoundException: org.jdesktop.jdic.desktop.internal.impl.ServiceManagerStub_unix
    Il doit y avoir d'autres fichiers à inclure que jdic.jar, mais je ne sais pas lesquels.
    Peut être aussi que je n'ai pas inclu le fichier correctement (voir au début du message), c'est la première fois que j'utilise une librairie externe en java.

    Je suis sous linux (Ubuntu 8.04), et je voudrais que ce code soit aussi compatible avec d'autres OS (au moins windows)

    Merci d'avance pour votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    J'ai fini par résoudre le problème précédent, en ajoutant d'autres .jar :
    • jdic_stub_unix
    • jdic_stub_windows
    • jdic_native_applet


    Par contre, j'obtiens un autre message d'erreur. J'ai besoin d'inclure jdic.so, mais je n'ai pas ce fichier.

    J'ai un libjdic.so et j'ai pensé que ça pouvait être une erreur au niveau du nom, mais en le renommant, le problème ne change pas. Je pense qu'en compilant, le fichier libjdic.so doit être généré, et inclu dans un .jar

    voici le nouveau message d'erreur (toujours à l'éxecution du code) :
    Native loader!
    java.security.PrivilegedActionException: java.io.IOException: Native resourse [bin/linux/x86/jdic.so] was not found in JAR.
    at java.security.AccessController.doPrivileged(Native Method)
    at org.jdesktop.jdic.init.NativeExtractor.loadLibruary(NativeExtractor.java:172)
    at org.jdesktop.jdic.init.JdicManager.loadLibrary(Unknown Source)
    at org.jdesktop.jdic.desktop.internal.impl.GnomeBrowserService.<clinit>(GnomeBrowserService.java:37)
    at org.jdesktop.jdic.desktop.internal.impl.ServiceManagerStub_unix.getService(ServiceManagerStub_unix.java:56)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.jdesktop.jdic.desktop.internal.ServiceManager.getService(Unknown Source)
    at org.jdesktop.jdic.desktop.Desktop.browse(Unknown Source)
    Je précise que j'ai la dernière version de jdic (le fichier jdic-0.9.5-bin-cross-platform.zip, téléchargé sur le site officiel).

    Je l'ai décompressé dans le dossier de mon projet, et je n'ai pas modifié quoi que ce soit dans les fichiers ou dans leur organisation.

    J'ai pu tester sous windows, et le programme fonctionne bien, mais il faut absolument que j'arrive à le faire tourner sous linux.

    Merci d'avance pour votre aide.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    Apparemment personne ne sait comment résoudre ce problème.J'ai trouvé une solution, mais elle est loin de me convenir.

    Quand je fait un build, j'ai un dossier lib qui se crée, dans lequel il y a plusieurs fichiers .jar

    L'un d'eux (jdic_native_applet.jar) contient un dossier /bin/linux/x86/ où devrait se trouver jdic.so, mais j'ai libjdic.so à la place.

    J'ai renommé ce fichier, et ça fonctionne maintenant. Le problème est que dés que je refais un build, où lorsque je lance un run ou un débuggage, le fichier utilisé est libjdic.so, qui ne fonctionne pas.

    Comme je l'ai dis dans mon message précédent, le fait de renommer le fichier avant la compilation ne marche pas, le .jar final contient toujours libjdic.so

    La solution ne doit plus être très loin, mais je sèche complètement.

    Merci d'avance pour votre aide

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    OK, j'ai fini par trouver tout seul, finalement.
    Il fallait en fait renommer le fichier .so dans le .jar avant la compilation. Je n'avais pas ouvert ce fichier avant, étant donné qu'il y avait déja un .so dans le dossier unix.
    Ce n'est peut être pas la meilleur solution, mais au moins ça marche correctement.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/09/2007, 13h41
  2. Ouvrir une page web (URL) dans le navigateur par défaut, dont Firefox.
    Par happy.rotter dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/09/2007, 13h41
  3. Ouverture d'une url dans une fenêtre spécifique
    Par jpbourgeois dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/09/2006, 23h54
  4. Passer une URL dans un form avec POST
    Par dldstyle dans le forum Langage
    Réponses: 5
    Dernier message: 30/04/2006, 21h09
  5. [JDIC] ouvrir url dans un navigateur (même page ou nouvelle page)
    Par dymezac dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 16/02/2006, 16h35

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