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 :

Faire référence au fichier jar la contenant


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut Faire référence au fichier jar la contenant
    Bonjour à tous,

    pour des raisons complexes, mon applet a besoin de faire référence au fichier jar qui la contient. J'utilise le code suivant, qui fonctionne très bien lançant l'applet depuis un fichier html local. Mais dès que j'utilise le protocole http, je me prend une "java.lang.IllegalArgumentException: URI scheme is not "file"" dans la tronche...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    File jarfile;  
     
    try {
        jarfile = new File(getClass().getResource("/monfichier.jar").toURI());
    } catch (Throwable t) {
        throw new RuntimeException("monfichier.jar est introuvable ! Cause: "+t.toString());
    }
    Comment récupérer ce fichier jar, qui doit normallement se trouver dans le cache du navigateur client ?

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 70
    Par défaut Re: [Applet] Faire référence au fichier jar la contenant
    Citation Envoyé par Pill_S
    Bonjour à tous,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    File jarfile;  
     
    try {
        jarfile = new File(getClass().getResource("/monfichier.jar").toURI());
    } catch (Throwable t) {
        throw new RuntimeException("monfichier.jar est introuvable ! Cause: "+t.toString());
    }
    Merci d'avance
    Avec le /monfichier.jar, il ira chercher le fichier à la racine du système et s'il n'y est pas c'est mort.
    Je ne sais vraiment pas mais je crois qu'il vaut mieux un chemin relatif en fonction de la position de ton applet dans le package. Je m'explique:
    supposons que ton applet est dans MonPackage.packApplet.applet1.class
    tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try {
     
      jarfile = new File(getClass().getResource("../../monfichier.jar").toURI());
    } catch (Throwable t) {
        throw new RuntimeException("monfichier.jar est introuvable ! Cause: "+t.toString());
    }
    Je me pose une autre question: pourquoi ne pas recupérer une copie directement sur le serveur : .
    [/code]

  3. #3
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    bin justement, la méthode getClass().getResource() va chercher à partir du dossier de lancement si on met le slash, et non pas à la racine du système.

    Je l'ai déjà utilisé plusieurs fois afin de récupérer des ressources présentes dans le classpath (selon les recommandations de la FAQ). Mais là, il semblerait que le problème vient du fait que le jar n'est pas un fichier local.

    Pour récupérer une copie sur le serveur, je veux bien mais je ne vois pas comment faire.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 70
    Par défaut
    Voici un bout de code que tu pourras optimiser
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    /*
     * RecuperartionFile.java
     *
     * Created on 23 mai 2005, 13:46
     */
     
    package AUTRES;
    import java.net.URL;
    import java.net.URLConnection;
    import java.io.InputStream;
    import java.io.File;
    import java.io.FileOutputStream;
     
    /**
     *
     * @author  Salif
     */
    public class RecuperartionFile {
     
        /** Creates a new instance of RecuperartionFile */
        public RecuperartionFile(String nomFichier) {
            //on crée l'URL pointant sur le fichier
            try{
              URL url = new URL(nomFichier);
              URLConnection urlCon = url.openConnection();
              InputStream is = urlCon.getInputStream();
              if(is!=null){
                 // On le lit completement dans un tableau de bits 
              byte[] data = new byte[0]; 
              byte [] buffer = new byte [1024*2]; 
              int taille; 
              while ((taille= is.read(buffer)) > 0) { // tant qu'il y a quelque chose à lire 
                 //on alloue un nouveau tableau 
                 byte [] data2 = new byte[data.length+taille]; 
                 // on recopie dedans les données deja lues 
                 System.arraycopy(data,0,data2,0,data.length); 
                 // On recopier dedans les données tout juste lues 
                 System.arraycopy(buffer,0,data2,data.length,taille); 
                 // ancien tableau = nouveau tableau 
                 data = data2; 
                  // nicolas.charlot  arrange toi à mettre içi ton progressBar pour controler l'etat de chargement
              } 
               File fichier = new File("C:\\monJar.jpg");  //mettre içi lengthnom de ton fichier
                FileOutputStream fos = new FileOutputStream(fichier); 
                fos.write(data); 
                fos.flush(); 
                fos.close();           
              }
            }catch(java.io.IOException ex){
                ex.printStackTrace();
            }
     
        }
        public static void main(String[] fichier){
            RecuperartionFile test = new RecuperartionFile("http://www.vetmed.wisc.edu/dms/fapm/personnel/tom_b/2004-lion_small.jpg");
        }
    }

  5. #5
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    nickel

    je crois que je vais même pas trop optimiser

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

Discussions similaires

  1. [XL-2003] Faire référence à la cellule contenant la fonction
    Par lemathurin dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/08/2010, 18h57
  2. Fichier Jar contenant des images
    Par luchet dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 29/06/2009, 12h02
  3. [débutant java web] faire exécuter des fichiers .jar coté serveur
    Par Balbuzard dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 01/09/2008, 18h16
  4. Réponses: 18
    Dernier message: 31/07/2008, 13h51
  5. Déclarer et faire référence à un fichier Word déjà ouvert?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 23/05/2008, 17h03

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