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 :

Problème 32/64bits pour chargement code natif


Sujet :

Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Problème 32/64bits pour chargement code natif
    Bonjour,

    Mon problème est quasi-identique à celui de Catsy, à ceci près que je souhaite développer en parallèle deux versions de mon application java, une en 32bits, l'autre en 64bits. Je développe donc avec un unique ordinateur 64bits.

    J'ai essayé plusieurs choses afin de faire fonctionner l'application 32bits, sans succès:
    - Installation d'Eclipse 32bits
    - Installation de Java 32bits
    - Utilisation de la librairie Java 32bits dans le projet
    - Compilation
    Mais le ".jar" obtenu semble identique à celui de la version 64bits.
    En remplaçant le jar 64bits par celui nouvellement créé, l'application 64bits fonctionne toujours.

    Étant amené à répéter régulièrement ce développement simultané, j'aimerai avoir de l'aide sur ce problème de développement 32/64bits.

    Merci pour votre aide !

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Lepolochon Voir le message
    Mais le ".jar" obtenu semble identique à celui de la version 64bits.
    En remplaçant le jar 64bits par celui nouvellement créé, l'application 64bits fonctionne toujours.
    Tu as du code natif dans ton application ?
    Car au niveau Java il n'y a aucun soucis 32bits/64bis puisque tu cibles une machine virtuelle.

    Donc s'il n'y a pas de code natif il n'y a aucun soucis. Ton application tournera aussi bien en 32bits qu'en 64bits selon la JVM que tu utilisera

    Si tu as du code natif, il faudra fournir les deux librairies natives : une en 32bits et l'autre en 64bits...


    a++

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,

    Tu as du code natif dans ton application ?
    Car au niveau Java il n'y a aucun soucis 32bits/64bis puisque tu cibles une machine virtuelle.

    Donc s'il n'y a pas de code natif il n'y a aucun soucis. Ton application tournera aussi bien en 32bits qu'en 64bits selon la JVM que tu utilisera

    Si tu as du code natif, il faudra fournir les deux librairies natives : une en 32bits et l'autre en 64bits...

    a++
    Merci pour ta réponse adiGuba.

    Je vais probablement me faire insulter, mais qu'est-ce que du code natif?
    D'après ce que j'ai pu lire, il faudrait qu'il y ait le mot "native" dans mon code.
    Si c'est le cas, je n'ai pas ce mot dans mon code. Il ne semble donc pas que j'ai du code natif.

    Ce qui est sûr, c'est que mon code ne fonctionne pas en 32bits, mais peut-être pour une autre raison...

    Merci de ton aide!

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Lepolochon Voir le message
    Je vais probablement me faire insulter, mais qu'est-ce que du code natif?
    Meuh non pourquoi veux-tu te faire insulter

    Du code natif c'est une partie de code écrit dans un autre langage tel que le C ou C++, et qui est compilé en natif pour un système et une architecture bien précise, contrairement au code Java qui est compilé en bytecode bien plus portable.

    [quote=Lepolochon;6346596]D'après ce que j'ai pu lire, il faudrait qu'il y ait le mot "native" dans mon code.
    Si c'est le cas, je n'ai pas ce mot dans mon code. Il ne semble donc pas que j'ai du code natif./quote]
    Le mot-clef native permet en effet de faire le lien entre code Java et code natif.

    Par contre tu peux utiliser du code natif sans le savoir, par exemple en utilisant une librairie qui utilise elle même du code natif

    Citation Envoyé par Lepolochon Voir le message
    Ce qui est sûr, c'est que mon code ne fonctionne pas en 32bits, mais peut-être pour une autre raison...
    L'erreur indique clairement que tu utilises une librairie 32bts sur un système 64bits.


    Peux-tu nous donner le stacktrace complet de l'exception, ainsi que la liste des librairies que tu utilises...


    a++

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Désolé pour le temps de réponse, je ne m'attendais pas à une si grande réactivité (MERCI!).

    En fait, je n'ai pas d'exception, ni de problème lorsque je lance avec éclipse, puisque je développe sur mon ordinateur 64bits.

    Le problème vient lorsque j'installe mon appli. sur un ordinateur 32bits:
    celle-ci ne fonctionne pas. Je sais juste qu'un procédure java est lancée, par le biais du gestionnaire de procédures.

    Or, en remplaçant seulement le ".jar", sortit avec Eclipse, par un ancien créé sur mon ancien ordinateur 32bits, cela fonctionne très bien.

    Peut-être puis-je faire un stack trace d'un ".jar", mais je ne sais pas comment faire...

    Merci beaucoup pour ton aide

  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
    C'est le stacktrace de l'erreur qu'il nous faut. C'est la pile d'appel qui amène à l'exception, et c'est affiché quand tu fait tonException.printStackTrace().

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Il faut que tu exécutes ton jar en ligne de commande, via la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar le_chemin_vers_ton_fichier.jar

    a++

  8. #8
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Actuellement, je lance déjà mon programme via un ".bat" avec le code:

    @echo off
    start javaw -Djava.library.path=. -jar monprogramme.jar
    exit /b


    @tchize_:
    Je ne sais pas comment avoir un stack trace hors d'éclipse.

  9. #9
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    En utilisant java à la place de javaw


    a++

  10. #10
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Merci pour cette info, je pense régler pas mal de petits problèmes comme cela !

    Pour revenir à mon problème, je vous joins mon stacktrace.
    Il semble que le problème vienne de l'intéraction entre java et un logiciel de calcul (Scilab) dont j'utilise les librairies (javasci.dll) et pilote depuis java.

    De ce fait, je ne pense pas que vous puissiez m'aider plus (j'espère me tromper !). Je vais essayer de me tourner vers un forum spécialisé Scilab.

    En tout cas merci !
    Images attachées Images attachées  

  11. #11
    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
    Le message (dont ont aurait préféré le copier/coller au screenshot de la console) mentionne clairement que la librairie scilab n'est pas présente sur cette machine => l'installer

  12. #12
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Désolé pour l'impression écran, mais je ne sais pas copier d'une fenêtre console. (Tant de choses à apprendre....)

    Pour la librairie, c'est évident que le problème vient de là. Ce qui l'est moins, c'est que tout est installé sur le PC en question... Je vais chercher de l'aide sur un forum plus approprié.

    Merci pour votre aide!
    (Si vous avez une idée, n'hésitez pas )

  13. #13
    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 Lepolochon Voir le message
    (Si vous avez une idée, n'hésitez pas )
    Menu de la console:
    Edit -> mark
    Edit -> copy

Discussions similaires

  1. Problème de compilation pour un code correct
    Par iliaseyah dans le forum Access
    Réponses: 7
    Dernier message: 19/06/2015, 16h23
  2. Foncteur managé pour du code natif
    Par nikopol82 dans le forum C++/CLI
    Réponses: 1
    Dernier message: 14/10/2008, 17h35
  3. problème avec glade pour la génération de code C++
    Par youyou80 dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 12/01/2008, 11h17
  4. class Stream pour code natif
    Par julioMEL dans le forum C++/CLI
    Réponses: 1
    Dernier message: 03/05/2007, 13h24

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