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

Entrée/Sortie Java Discussion :

[JavaComm]Pb avec l'execution d'un code natif sous linux


Sujet :

Entrée/Sortie Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [JavaComm]Pb avec l'execution d'un code natif sous linux
    Bonjour,

    Je developpe en ce moment un petit logiciel qui doit envoyer des données sur les port série.
    Je suis sous linux RedHat 7.3 et j'utilise le JDK J2se1.4.2.
    Pour la communication avec le port serie, j'utilise la Java Communications API http://java.sun.com/products/javacomm/ avec la librairie pour linux RXTX http://www.rxtx.org/.

    Lorsque je fais appel à une methode de l'API Java, j'obtiens le message suivant :

    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
     
    An unexpected exception has been detected in native code outside the VM.
    Unexpected Signal : 11 occurred at PC=0x40008CEB
    Function=_dl_relocate_object+0x77
    Library=/lib/ld-linux.so.2
     
    Current Java thread:
    	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1560)
    	- locked <0x44740270> (a java.util.Vector)
    	- locked <0x44758960> (a java.util.Vector)
    	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1477)
    	at java.lang.Runtime.loadLibrary0(Runtime.java:788)
    	- locked <0x44753600> (a java.lang.Runtime)
    	at java.lang.System.loadLibrary(System.java:834)
    	at gnu.io.RXTXCommDriver.<clinit>(RXTXCommDriver.java:72)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Class.java:141)
    	at javax.comm.CommPortIdentifier.InitializeDriver(CommPortIdentifier.java:213)
    	at javax.comm.CommPortIdentifier.loadDriver(CommPortIdentifier.java:248)
    	at javax.comm.CommPortIdentifier.<clinit>(CommPortIdentifier.java:351)
    	at Passerelle.Main.main(Main.java:50)
    ...
    #
    # The exception above was detected in native code outside the VM
    #
    # Java VM: Java HotSpot(TM) Client VM (1.4.2_04-b05 mixed mode)
    #
    # An error report file has been saved as hs_err_pid14963.log.
    # Please refer to the file for further information.
    #
    En cherchant sur le net, j'ai vallait mieux utiliser l'option -native lorsqu'on execute le code.
    Le probleme est que quand je tappe la commande "java -native <maClasse" j'obtiens le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Error: native VM not supported
    Est-ce que quelqu'un peut m'expliquer comment corriger l'erreur "outside the VM"
    ou sinon, où telecharger une VM pour linux qui supporte les threads natifs

    Merci d'avance

    Seb


    [Modéré par Didier]
    Ajout de tag dans le titre
    Lire les règles du forum : Règles du forum Java

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 28
    Points : 33
    Points
    33
    Par défaut
    c'est pour utliser les threads natifs au lieu des green thread. Donc ça n'a rien a voir.
    à mon avis le pb vient de ta librairie (.so) est ce que ta librairie est importer dans la varibale d'environnement LD_LIBRARY_PATH?

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    la librairie est importee sinon il y aurait une UnsatisfiedLinkError

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut s
    J'ai fini par resoudre mon probleme :

    • - J'ai desinstalle la Java Communications API et la version de la librairie rxtx que j'avais installé
      - J'ai telecharge la version rxtx-2.1-7pre17 disponible sur http://www.rxtx.org/.
      Cette version a comme particularité de contenir les classes de Java Communications API
      et donc de ne pas necessiter l'intallation de cette API
      (a cause d'une sombre histoire de license d'apres ce que j'ai pu lire).
      - J'ai copié les fichiers .so dans le rep <jdk>/jre/lib/i386
      - J'ai copié le fichier .jar dans le rep <jdk>/jre/lib/ext
      - J'ai ajouté mon login aux groupes uucp et lock (pour avoir les droits de bloquer un port)
      - J'ai ajouter un lien vers le .jar dans mon classpath
      - Et j'ai remplacé mes "import javax.comm.*" par "import gnu.io.*"
      - J'ai redemarré ma session (a cause de la modification des groupes)


    Et depuis, ca marche du feu de dieu

    J'espere que ce poste sera utile à d'autres et merci à ceux qui ont pris le temps de me repondre

    Seb

  5. #5
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Franchement j'ai suivi tes conseils pour l'installation de RXTXcom sous Linux (ton msg du 14/05), et quand je change import javax.comm.* par import gnu.io.* les méthodes utilisant javax.comm.* ne fonctionnent plus.
    De plus le fait de rajouter import gnu.io.* n'ajoute rien dans mon programme. Pour information mon programme java fonctionne sous Windows.

    Quel est l'astuce ?
    Comment faire pour que le comm soit trouvé sous linux avec un programme java ?

    Merci pour ton aide. Je cherche en vain depuis bien longtemps maintenant.

    A+
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 272
    Points : 166
    Points
    166
    Par défaut comm API sous Linux
    Salut,

    Tout est explique sur

    http://wass.homelinux.net/howtos/Comm_How-To.shtml

    Pour moi ca marche, mais seulement en root sinon j'ai un probleme de droit sur des fichiers lock.

    Sinon j'ai l'erreur aussi:

    Exception in thread "main" java.lang.VerifyError: (class:
    gnu/io/RXTXPort$SerialOutputStream, method: write signature: ([BII)V) Illegal
    use of nonvirtual function call

    Que l'on resoud en ajoutant -noverify dans la ligne de commande, seule probleme quand on fait une applet signe, sous Mozilla, c'est ou qu'on peut specifier des parametres pour la VM ???

    @++

  7. #7
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Je viens de refaire l'installation complète du J2SDK, Comm.jar et RXTX.

    Lorsque j'exécute le fichier java qui scrute les ports (série et parallèle) de ma machine j'obtient l'exception suivante :

    Quelqu'un peut-il m'aider ? Je craaaaaaaaaaaaaack !!!!!!!!!!!!!!!!!!!!!!!!



    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
     
    An unexpected exception has been detected in native code outside the VM.
    Unexpected Signal : 11 occurred at PC=0x40008671
    Function=_dl_relocate_object+0x79
    Library=/lib/ld-linux.so.2
     
    Current Java thread:
            at java.lang.ClassLoader$NativeLibrary.load(Native Method)
            at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1560)
            - locked <0x44750270> (a java.util.Vector)
            - locked <0x4476a5b0> (a java.util.Vector)
            at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1477)
            at java.lang.Runtime.loadLibrary0(Runtime.java:788)
            - locked <0x44764350> (a java.lang.Runtime)
            at java.lang.System.loadLibrary(System.java:834)
            at gnu.io.RXTXCommDriver.<clinit>(RXTXCommDriver.java:72)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:141)
            at javax.comm.CommPortIdentifier.InitializeDriver(CommPortIdentifier.java:213)
            at javax.comm.CommPortIdentifier.loadDriver(CommPortIdentifier.java:248)
            at javax.comm.CommPortIdentifier.<clinit>(CommPortIdentifier.java:351)
            at Listeport.main(Listeport.java:12)
    "hs_err_pid6846.log" 85L, 5516C                               1,0-1       blabla ... plus si affinité ... blabla et encore blabla...............................
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  8. #8
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Enfin cela fonctionne.

    Merci Lovmy pour ton lien internet. Il faut faire attention que les versions de programmes à installer correspondent entre eux.

    Pour pouvoir lancer l'application en un utilisateur nommé béta : il faut que l'utilisateur béta fasse partie des groupes uucp et lock (ne pas oublier de relancer la session après modifications).

    A+.
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

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

Discussions similaires

  1. Compilation avec Code::Blocks sous Linux (Ubuntu)
    Par Kaluza dans le forum Débuter
    Réponses: 1
    Dernier message: 05/10/2011, 16h10
  2. Executer un code C# sous Linux avec Nant
    Par nadabb dans le forum Administration système
    Réponses: 6
    Dernier message: 20/08/2009, 10h03
  3. Problème de librairie avec code blocks sous Linux
    Par philmor34 dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 31/10/2008, 13h25
  4. [JMF] Code fonctionnant sous Linux mais pas sous XP
    Par Monsieur_Max dans le forum Multimédia
    Réponses: 4
    Dernier message: 25/05/2006, 18h57
  5. Code::Blocks sous Linux problème de linkage
    Par JuTs dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 22/03/2006, 16h54

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