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

MATLAB Discussion :

Appel de class Java dans MATLAB


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Par défaut Appel de class Java dans MATLAB
    Bonjour j'ai des probleme pour appellé des class java en matlab
    ma question concerne donc le second lien donné dans cette discussion : Connexion Java et MATLAB

    Java => MATLAB : Calling Java from MATLAB
    J'ai creer une simple class java (constructeur + un attribut)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    package mypack;
    public class HelloWorld {
    	public String hello;
    	public HelloWorld() {
    		hello = "world";
    	}
    }
    Mais je n'arrive pas a l'appeller en matlab:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function mytestJava()
    [M,X,J]=inmem
    myJava = HelloWorld();
    j'obtient le message d'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ??? Undefined function or variable 'HelloWorld'.
     
    Error in ==> mytestJava at 3
    myJava = HelloWorld();
    ma classe n'apparait pas dans la variable J du [M,X,J]=inmem pourtant quand je check mon javaclasspath le repertoire contenant ma classe est bien là

    J'ai essayé avec des tar, des .class, avec ou sans package mais rien ne foncionne, je ne comprend vraimend pas pourquoi ??
    je compile avec javac 1.5.0_06 est ce que ca peut posser probleme?

    enfin ou se trouve les jar des classe que je retrouve dans le J du [M,X,J]=inmem si je placais mes propre jar au meme endroit ca pourrai peut etre marcher ???


    maerci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Aucun problème de mon coté en utilisant un simple .class :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >> myJava.hello
     
    ans =
     
    world
     
    >>
    Quelle est ta version de MATLAB ? Sous quel système d'exploitation ?

  3. #3
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Par défaut
    Ma version posse t'elle problème ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    J'ai réussi sous MATLAB 6.5.2 en modifiant la JVM utilisée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >> version('-java')
    
    ans =
    
    Java 1.6.0_12 with Sun Microsystems Inc. Java HotSpot(TM) Client VM
        (mixed mode, sharing)
    à la place de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >> version('-java')
    
    ans =
    
    Java 1.3.1_01 with Sun Microsystems Inc. Java HotSpot(TM) Client VM
        (mixed mode)
    => How do I change the Java Virtual Machine (JVM) that MATLAB is using?

    Le problème maintenant, c'est que MATLAB 7.1 ne veut plus démarrer avec la variable d'environnement MATLAB_JAVA modifiée. Donc impossible de tester quoi que ce soit

    Il suffit de supprimer la variable d'environnement MATLAB_JAVA pour retrouver un comportement normal de MATLAB
    Images attachées Images attachées  

  5. #5
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par Tiéry Voir le message
    ma version matlab 7.1.0.246(R14)
    Citation Envoyé par Tiéry Voir le message
    je compile avec javac 1.5.0_06 est ce que ca peut posser probleme?
    LA JVM utilisée par MATLAB 7.1 est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >> version('-java')
     
    ans =
     
    Java 1.5.0 with Sun Microsystems Inc. Java HotSpot(TM) Client VM mixed mode
    Essaie donc de modifier la JVM utilisée par MATLAB en faisant pointer la variable d'environnement MATLAB_JAVA vers le répertoire jre du jdk 1.5.0_06

  6. #6
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Par défaut
    MERCI

    Effectivement un probleme de version de jdk
    encore merci

  7. #7
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Par défaut
    oui il semblerai qu'un probleme de version soit la source du probleme:
    http://www.mathworks.de/matlabcentra..._thread/170616

    ma version matlab 7.1.0.246(R14)

    je ne sais pas si il faut des plugins ou autre pour utiliser java dans matlab ?

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

Discussions similaires

  1. appel de class java en matlab
    Par kawther dans le forum MATLAB
    Réponses: 0
    Dernier message: 25/12/2013, 16h15
  2. Réponses: 1
    Dernier message: 29/08/2010, 22h50
  3. appel d'une classe java dans pl/sql
    Par sirine1 dans le forum PL/SQL
    Réponses: 11
    Dernier message: 06/04/2009, 09h34
  4. comment appeler une classe java dans une page jsp?
    Par limalima dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 21/11/2008, 22h59
  5. appel d'une classe java dans un jsp
    Par kanzarih dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 01/03/2007, 13h06

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