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

Applets Java Discussion :

[Applet] Compiler une applet ?


Sujet :

Applets Java

  1. #1
    Membre confirmé
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Par défaut [Applet] Compiler une applet ?
    Bonjour,

    Je développe une applet Swing sous Eclipse.

    Jusqu'à présent j'ai toujours visualisé le résultat dans l'AppletViewer de Sun.

    Maintenant j'aimerais la faire fonctionner de façon indépendante, dans une page Web, mais l'applet n'arrive pas à s'initialiser.

    Dans la console j'ai des erreurs du type :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    	at sun.applet.AppletClassLoader.findClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at sun.applet.AppletClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Unknown Source)
    	at com.ca2i.library.ConnectionLibrary.databaseConnect(ConnectionLibrary.java:26)
    	at com.ca2i.applet.AdministrationWorkflows.init(AdministrationWorkflows.java:61)
    	at sun.applet.AppletPanel.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    Caused by: java.io.FileNotFoundException: e:\Temp\applet\bin\oracle\jdbc\driver\OracleDriver.class (Le chemin d'accès spécifié est introuvable)
    	at java.io.FileInputStream.open(Native Method)
    	at java.io.FileInputStream.<init>(Unknown Source)
    	at java.io.FileInputStream.<init>(Unknown Source)
    	at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
    	at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source)
    	at sun.applet.AppletClassLoader.getBytes(Unknown Source)
    	at sun.applet.AppletClassLoader.access$100(Unknown Source)
    	at sun.applet.AppletClassLoader$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	... 11 more
    java.lang.NullPointerException
    	at com.ca2i.library.ToolsLibrary.getLib(ToolsLibrary.java:44)
    En gros, des fichier du projet (ici, le driver JDBC Oracle) sont introuvables.

    Je pense que je ne compile pas bien le projet :

    - Après avoir lancé le projet sous Eclipse par "ctrl+F11", je récupère les fichiers .class dans le répertoire du projet. Dès lors, pourquoi ai-je un fichier .class par fichier source ? Pourquoi n'ai-je pas un seul fichier .class en sortie ?

    - Dans le même répertoire que le fichier "principal", je mets ma page web intégrant le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <html>
    <body>
    <applet code=com.ca2i.applet.AdministrationWorkflows.class width="200" height="200" >
    </applet>
    </body>
    </html>

    Comment faire pour tout compiler correctement sous Eclipse, et obtenir en sortie un seul fichier éxécutable .class ??

    merci


    bob

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 34
    Par défaut Re: [Eclipse] Compiler une applet ?
    Citation Envoyé par Bobsinglar
    pourquoi ai-je un fichier .class par fichier source ? Pourquoi n'ai-je pas un seul fichier .class en sortie ?

    Comment faire pour tout compiler correctement sous Eclipse, et obtenir en sortie un seul fichier éxécutable .class ??
    Java est un langage hybride entre langages compilés et interprétés. Ton code est d'abord pré-compilé dans les fichiers .class qui vont ensuite etre interprétés. Un fichier .class n'est pas un executable, puisque tu as besoin d'une machine virtuelle pour l'interpréter. De plus, tu obtiens un fichier .class par classe que tu compiles. Tu obtiendras donc toujours au moins autant de fichier .class que tu as de fichier .java. Mais en général tu en obtiendras meme plus, puisqu'il est courrant qu'un fichier .java contienne plusieurs classes.
    Je penses que tu as quelques lacunes avec les bases de java donc je te conseille de faire un tour du coté des tutoriels.

  3. #3
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut Re: [Eclipse] Compiler une applet ?
    Hello,

    Citation Envoyé par Bobsinglar


    Comment faire pour tout compiler correctement sous Eclipse, et obtenir en sortie un seul fichier éxécutable .class ??
    Tu dois confondre avec la generation d'un fichier .jar qui lui effectivement peut contenir plusieurs classes.
    Pour cela, il faudrait que tu jetes un coup d'oeil sur le language de script ANT.

    Bon courage!

  4. #4
    Membre éprouvé
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Par défaut
    Bonjour,

    - ben oui 1 fichier .class par classe ça parait normal ...
    - ben non 1 .class n'est pas 1 exécutable

    Si tu veux 1 fichier unique regroupe ttes tes .class dans 1 jar,
    mais si tu fait 1 applet ce n'est pas pour faire 1 'exécutable' ,
    mais pour optimiser le tps de chargement.

    Enfin utilise le parametre archive de la balise applet pour renseigner le chemin de ton driver jdbc
    cf ton précédent post ici : http://www.developpez.net/forums/viewtopic.php?t=364417

  5. #5
    Membre confirmé
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Par défaut
    Merci beaucoup pour vos précieuses informations.

    Oui j'ai des lacunes de base en Java car j'ai appris ce langage de façon assez empirique. Je commence à bien maîtriser le langage niveau codage, mais en ce qui concerne les détails "fonctionnels", j'ai encore du mal.

    Je vais appliquer vos conseils dans la journée. Mais j'ai dès à présent qqes questions supplémentaires :

    - puiss-je intégrer tous les fichiers .class qui constituent l'applet dans un .jar, et vais-je pouvoir appeler ce jar depuis une balise <APPLET...> ?

    - Je driver JDBC peut-il/doit-il être intégré au jar, ou bien doit-il systématiquement être appelé par le param "archive" de la balise <APPLET>

    - Si je décide de laisser l'applet sous forme de fichiers .class, quelle structure doit avoir l'arborescence des fichiers ? celle des packages (et de leurs répertoires correspondants) ?


    Encore merci!

    bob

  6. #6
    Membre éprouvé
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Par défaut
    re,

    voici qques éléments de réponse.

    Citation Envoyé par Bobsinglar
    :
    - puiss-je intégrer tous les fichiers .class qui constituent l'applet dans un .jar, et vais-je pouvoir appeler ce jar depuis une balise <APPLET...> ?
    oui, mais tu continue à appeler ta classe, le .jar n'est qu'une ressource
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <applet codebase="."
    archive = ".\archive1.jar, .\archive2.zip"		
    code="maClasse.class" 
    [...]>
    </applet>
    Citation Envoyé par Bobsinglar
    :
    - Je driver JDBC peut-il/doit-il être intégré au jar, ou bien doit-il systématiquement être appelé par le param "archive" de la balise <APPLET>
    Je n'ai jamais essayé d'inclure le driver JDBC au .jar.
    Je ne sais pas non plus si on peut inclure 1 .jar ds 1 .jar.
    Mais de toute façon fais attention à la taille de ton .jar, n'oublies pas qu'il est destiné à être chargé via internet...
    Quand je 'bidouille' avec les applets, je renseigne le chemin du driver ds archive, sinon je suis tjours passé par 1 serveur de servlet, c lui qui fait la connection à la base.
    Citation Envoyé par Bobsinglar
    :
    - Si je décide de laisser l'applet sous forme de fichiers .class, quelle structure doit avoir l'arborescence des fichiers ? celle des packages (et de leurs répertoires correspondants) ?
    Ben ça g jamais fais non plus. Quand g plusieurs classes je fais 1 .jar.
    Donc je ne sais pas non plus.

    Ca nécessite certainement d'être complété par d'autres avis.

    A +

  7. #7
    Membre confirmé
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Par défaut
    C'est OK, tout fonctionne.
    J'indique l'emplacement du driver JDBC par la balise archive.
    Je place les .class dans des répertoires dont l'orborescence correspond à celle des packages.

    Je précise que pour autoriser l'applet à établir une connexion réseau, il m'a fallu ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    grant {
      permission java.security.AllPermission;
    };
    dans le fichier $REP_JRE$\
    Je ne sais pas si ça provoqie des problèmes de sécurité...



    Bobsinglar a écrit:
    :
    - puiss-je intégrer tous les fichiers .class qui constituent l'applet dans un .jar, et vais-je pouvoir appeler ce jar depuis une balise <APPLET...> ?

    oui, mais tu continue à appeler ta classe, le .jar n'est qu'une ressource
    parfait

    Bobsinglar a écrit:
    :
    - Si je décide de laisser l'applet sous forme de fichiers .class, quelle structure doit avoir l'arborescence des fichiers ? celle des packages (et de leurs répertoires correspondants) ?

    Ben ça g jamais fais non plus. Quand g plusieurs classes je fais 1 .jar.
    Donc je ne sais pas non plus.

    Je viens d'essayer, et c'est bien comme ça qu'il faut faire


    Merci beaucoup!

    bob

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

Discussions similaires

  1. [applet] ouvrir une applet dans une fenetre
    Par rohel dans le forum Applets
    Réponses: 4
    Dernier message: 19/02/2005, 00h57
  2. [applet] lancer une applet mais dans une page web
    Par dzincou dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 11/08/2004, 13h32
  3. [Applet]Utiliser plusieurs Applet dans une même classe
    Par BRAUKRIS dans le forum Applets
    Réponses: 5
    Dernier message: 11/06/2004, 15h27
  4. [Applet] Ouvrir une applet dans une page HTML
    Par debutant java dans le forum Applets
    Réponses: 4
    Dernier message: 04/06/2004, 17h11
  5. [Applet]Redimensionner une applet
    Par muad'dib dans le forum Applets
    Réponses: 2
    Dernier message: 22/04/2004, 12h42

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