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

Java Discussion :

Soucis avec un JAR


Sujet :

Java

  1. #1
    Membre éclairé Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 621
    Par défaut Soucis avec un JAR
    Bonjour à tous,

    Je développe une application JAVA avec Eclipse sous Windows 7 64 bits.
    Cette application fait appel à des librairies qui utilisent des DLL d'un scanner.

    Cette application fonctionne très bien sous l'environnement d'Eclipse et quand je génère le JAR exécutable et que je le lance le JAR, l'application plante.

    Si quelqu'un à des idées ?

    Merci.

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par thierrybatlle Voir le message
    Si quelqu'un à des idées ?
    C'est toujours pratique d'avoir une copie des erreurs c'est comme les symptômes pour le docteur : "sans bah il ne saura pas facilement dire où est le soucis".
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Membre éclairé Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 621
    Par défaut
    Voici le fichier de log.

    Merci.
    Fichiers attachés Fichiers attachés

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Visiblement ton code natif fou le bordel. On peux difficilement blamer java.

    Le problème se trouve ici
    j gx.jgxJNI.delete_gxVariant(J)V+0

    j gx.gxVariant.delete()V+25

    j gx.gxVariant.finalize()V+1

    C'est du code à toi? Tu utilise du JNI ou du JNA pour interfacer ta librairie?

  5. #5
    Membre éclairé Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 621
    Par défaut
    Non ce n'est pas du code à moi.
    C'est le fabricant du scanner.
    Ce que je ne comprend pas c'est pourquoi cela marche sous Eclipse et pas en passant par le JAR.

    Merci.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    il peux y avoir plein de raison
    - eclipse est en mode debug
    - il ne charge pas la même dll
    - pas la même version de java

    etc.

    Le crash est clairement du à la couche native, reste à déterminer (et c'est pas évident sans code) qu'est-ce qui foire dans la couche native. visiblement là, c'est ton code native qui accès à une zone mémoire qu'il ne possède pas (débordement de pointeur).

  7. #7
    Membre éclairé Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 621
    Par défaut
    Je vais cherché dans mon code.
    Mais une dernière question :
    Pourquoi sous windows XP cela marche bien ?

    Merci.

  8. #8
    Membre éclairé Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 621
    Par défaut
    Voici le code qui plante dans le JAR

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
        private BufferedImage GxImageToBufferedImage(gxImage gximage, int pixelorder)
        {
            if( gximage == null || !gximage.IsValid())
                return null;
     
            logger.log(Level.INFO, "Converting a GxImage ...");
            int width;
            int height;
            int scanline;
            int pixelformat;
            int pixelsize;
            byte[] pxls;
     
            pxls = gximage.GetPixels();
            if(pxls.length < 0)
                return null;
     
            width = gximage.GetXSize();
            height = gximage.GetYSize();
            pixelsize = gximage.GetPixelSize();
            pixelformat = gximage.GetPixelFormat();
            scanline = gximage.GetSLine();
            BufferedImage img = null;
     
     
            //img = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
     
            img = new BufferedImage(width, height, pixelorder);
            int[] pxlBuffer = ((DataBufferInt)img.getRaster().getDataBuffer()).getData();
    //        byte[] pxlbuf = ((DataBufferByte)img.getRaster().getDataBuffer()).getData();
     
            if(pixelsize == 3)
            {
                int m = 0;
                for (int j = 0; j < height; j++)
                {
                    int k = j * scanline;
     
                    for (int i = 0; i < width; i++)
                    {
                                // B                       //G                  //R
                        int p = 0;
                        p =  ((int) pxls[k] & 0xff ) | (((int) pxls[k+1]& 0xff)  << 8) | (((int) pxls[k+2] & 0xff)  << 16) ;
                        //p =  ((int) pxls[k] & 0xff << 16) | (((int) pxls[k+1]& 0xff)  << 8) | (((int) pxls[k+2] & 0xff)) ;
                        pxlBuffer[m] = p;
                        m++;
                        k += pixelsize;
                    }
                }         
            }
            else if(pixelsize == 1)
            {
                int m = 0;
                for (int j = 0; j < height; j++)
                {
                    int k = j * scanline;
                    for (int i = 0; i < width; i++)
                    {
                        int p = 0;
                        p =  ((int) pxls[k] & 0xff ) | (((int) pxls[k]& 0xff)  << 8) | (((int) pxls[k] & 0xff)  << 16) ;
                        pxlBuffer[m] = p;
                        m++;
                        k += pixelsize;
                    }
                }          
            }
            else
            {
            	logger.log(Level.WARN, "Unrecognized pixel format");
            }
            return img;
        }

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par thierrybatlle Voir le message
    Je vais cherché dans mon code.
    Mais une dernière question :
    Pourquoi sous windows XP cela marche bien ?

    Merci.
    Parce qu'une erreur de pointeur, ça donne en général des résultats très aléatoire suivant les conditions de fonctionnement.

  10. #10
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Citation Envoyé par thierrybatlle Voir le message
    Pourquoi sous windows XP cela marche bien ?
    Citation Envoyé par tchize_ Voir le message
    il ne charge pas les mêmes dlls
    Déjà d'une machine à une autre, il chargera pas nécessairement les mêmes dlls alors d'un OS à un autre !

    Il faut comparer sous Eclipse et depuis la ligne de commande : les variables d'environnement, les propriétés systèmes (option "-DXXXX"), le répertoire de travail, etc.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/01/2014, 11h23
  2. quelques soucis avec word 2000
    Par ramchou dans le forum Word
    Réponses: 3
    Dernier message: 06/09/2004, 18h13
  3. Programme fonctionnant sur Eclipse mais pas avec le jar?
    Par kirik dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 10/02/2004, 13h43
  4. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52
  5. Réponses: 4
    Dernier message: 16/02/2003, 12h16

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