Appeler un code java depuis matlab
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Appeler un code java depuis matlab



  1. #1
    invitebb140489

    Appeler un code java depuis matlab


    ------

    Bonjour tout le monde.
    j'ai une class java: HelloWorld:
    Code:
    import java.lang.String;
    
    public class HelloWorld {
    	//package mypack;
    	
    		public String hello;
    		public HelloWorld() {
    			hello = "world";
    		}
    	      
    }
    et quand j'essaye de la lire avec matlab par:
    Code:
    function Test()
    test = HelloWorld();
    end
    il m'affiche l'erreur suivante:
    Code:
    ??? Undefined function or variable 'HelloWorld'.
    
    Error in ==> Test at 3
    test = HelloWorld();
    est ce que vous avez une idée s'il vous plait???

    -----

  2. #2
    lou_ibmix_xi

    Re : Appelé un code java depuis matlab

    Soit MATLAB est devenu un interpréteur universel depuis que j'ai arrété de m'en servir, soit c'est franchement un non sens...
    Le langage de MATLAB est propre à MATLAB, c'est un langage interprété... Le JAVA est un langage qui doit être compilé pour être utilisé par une machine virtuelle...
    Si tu veux vraiment faire ce genre de chose, tu compile ton programme en JAVA, puis tu appelles la JVM au travers de MATLAB grâce à la fonction "system"...

  3. #3
    invitebb140489

    Re : Appelé un code java depuis matlab

    Bonjour.
    Est ce que vous pouvez me détailler un petit peut s'il vous plait???

  4. #4
    invite79d10163

    Re : Appelé un code java depuis matlab

    Tu pourrais commencer par lire ça (la documentation de matlab):

    http://www.mathworks.com/help/techdo...al/f44062.html

  5. A voir en vidéo sur Futura
  6. #5
    invitebb140489

    Re : Appelé un code java depuis matlab

    C'est ca le probleme, j'ai déja consulter cette documentation, mais j'ai pas encore compris comment faire.
    j'ai fait l'étape d'ajout de path mais sa marche pas encore.
    est ce que vous pouvez m'aider s'il vous plait, je me suis bloqué à ce niveau

  7. #6
    invite79d10163

    Re : Appelé un code java depuis matlab

    1) http://www.mathworks.com/help/techdo...al/f98533.html

    1-1 Tu as donc installé une machine virtuelle java (JVM) ,
    1-2 Tu as localisé où est installé les librairies runtime de la jvm
    1-3 Tu as fait pointer la variable d’environnement MATLAB_JAVA vers ce répertoire
    1-4 Tu as édité le fichier classpath.txt. pour ajouter le lien vers le répertoire où ce trouve tes classes java que tu as déjà compilé

    Tu devrais ensuite passé à l'étape suivante:
    http://www.mathworks.com/help/techdo...nal/f4873.html

  8. #7
    invitebb140489

    Re : Appelé un code java depuis matlab

    Oui, j'ai déja executer les premiers étapes.
    quand je passe a creer un objet java par:
    Code:
    J = javaObject('HelloWorld');
    il me donne l'erreur suivante:
    Code:
    ??? Error using ==> javaObject
    No class HelloWorld can be located on Java class path
    sachant que j'ai ajouter le le chemin de ma classe, et quand je fais appel a javaclasspath j'obtient:
    Code:
    STATIC JAVA PATH
    C:\Program Files\MATLAB\R2008a\java\patch
    ...
    ...
    ...
    DYNAMIC JAVA PATH
    C:/Users/Fulla/Desktop/PFE/Recherche/Implementation/Code/Fichier.m/javaclasses
    est ce que vous avez une idée??

  9. #8
    invite79d10163

    Re : Appelé un code java depuis matlab

    Citation Envoyé par rimi_27 Voir le message
    Oui, j'ai déja executer les premiers étapes.
    quand je passe a creer un objet java par:
    Code:
    J = javaObject('HelloWorld');
    il me donne l'erreur suivante:
    Code:
    ??? Error using ==> javaObject
    No class HelloWorld can be located on Java class path
    sachant que j'ai ajouter le le chemin de ma classe, et quand je fais appel a javaclasspath j'obtient:
    Code:
    STATIC JAVA PATH
    C:\Program Files\MATLAB\R2008a\java\patch
    ...
    ...
    ...
    DYNAMIC JAVA PATH
    C:/Users/Fulla/Desktop/PFE/Recherche/Implementation/Code/Fichier.m/javaclasses
    est ce que vous avez une idée??
    J'imagine que la classe définis dans HelloWorld.java se trouve dans 'C:/Users/Fulla/Desktop/PFE/Recherche/Implementation/Code/Fichier.m/javaclasses'

    Tu peux essayé la syntaxe:

    import HelloWorld
    H = HelloWorld();

    Un autre exemple http://ocw.mit.edu/courses/mathemati...javamatlab.pdf

    JE précise que j'ai jamais testé tout ça...

  10. #9
    invitebb140489

    Re : Appelé un code java depuis matlab

    j'ai ajouté la class path de java dans le fichier classpath.txt:
    $C:\Users\Fulla\Desktop\PFE\Re cherche\Implementation\Code\Fi chier.m\javaclasses
    sachant que dans le dossier javaclasses se trouve ma classe HelloWorld: HelloWorld.java et HelloWorld.class
    mais quend j'éssaye de l'afficher dans matlab par:
    javaclasspath, il me donne une liste sans celui que j'ai ajouter.
    poucela je l'ai ajouter par la commande:
    javaaddpath.
    mais je crois que ca marche pas avec cette methode.
    est ce que vous avez une idée pourquoi il m'a pas ajouter le chemin dans la liste même si je l'ai ajouter

  11. #10
    invite79d10163

    Re : Appelé un code java depuis matlab

    Si tu as éditer classpath.txt, il faut redémarrer matlab pour que la modification soit prise en compte. Ce fichier n'est lu qu'au démarrage de matlab.

  12. #11
    invitebb140489

    Re : Appelé un code java depuis matlab

    pour la path ca marche.
    mais pour:
    Code:
    import HelloWorld
     H = HelloWorld();
    encore la meme erreur:
    Code:
    ??? Error using ==> import
    Import argument 'HelloWorld' cannot be found or cannot be imported.

  13. #12
    invite79d10163

    Re : Appelé un code java depuis matlab

    i faut vérifier que la version de java que tu as utilisé pou compiler HelloWorld est la même que celle utilisé par matlab

    Pour savoir la version que matlab utilise il faut faire : version -java

    De plus la syntaxe que je t'es suggéré n'est peut être pas bonne, testes aussi celle que tu utilisais au début : (J = javaObject('HelloWorld')

  14. #13
    invitebb140489

    Re : Appelé un code java depuis matlab

    Matlab utilise la meme vesrion avec laquelle j'ai compilé ma classe java.

  15. #14
    invitebb140489

    Re : Appelé un code java depuis matlab

    même si j'utilise java0bject j'obtient la même erreur

  16. #15
    invitebb140489

    Re : Appelé un code java depuis matlab

    Bonjour.
    enfin le problème est réglé.
    mais j'ai un autre problème
    j'ai une classe java qui s'appele ArabicStemmer et qui contient un costructeur ArabicStemmer() sans arguments,je fait l'appel par:
    test=ArabicStemmer
    j'obtient l'erreur:
    ??? No constructor 'ArabicStemmer' with matching signature found.

Discussions similaires

  1. [matlab] programmation : peut-on générer un arbre des fonctions d'un code Matlab ?
    Par bratisla dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 09/07/2015, 10h12
  2. Lancer un script php depuis matlab
    Par fiatlux dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 06/11/2010, 14h28
  3. Appel de fonction de ImageMagick depuis Matlab
    Par lignux dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 11/12/2007, 16h34
  4. matlab sous java
    Par ABN84 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 26/02/2007, 05h25
  5. comment appeler une fonction ecrite en C++ sur Matlab
    Par invite5c0c3007 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 17/06/2005, 14h35