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 :

[Java] Instancier des classes


Sujet :

MATLAB

  1. #1
    Membre actif
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Points : 213
    Points
    213
    Par défaut [Java] Instancier des classes
    Bonjour,

    je débute dans la communication entre Matlab et Java.

    J'ai des classes Java, situées dans un.jar, que je voudrais instancier et utiliser sous Matlab.

    J'ai réussi à le faire pour une classe simple : Imprimante. Voici ce que j'ai fait :

    Définition de la classe sous java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    package armoire.tiroir.vue;
     
    public class Imprimante {
    	private String texte_ ;
     
    	public Imprimante(String texte){
    		texte_ = texte ;
    	}
     
    	public void imprime(){
    		System.out.println(texte_);
    	}
    }
    J'ai exporté cette classe sous forme de Imprimerie.jar.

    Sous Matlab, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    >> javaaddpath('D:\Imprimerie.jar') ;
    >> import armoire.tiroir.vue.Imprimante ;
    puis je peux utiliser la classe tranquillement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >> objet = Imprimante('bonjour !!!') ;
    >> objet.imprime ;
    bonjour !!!



    Tout ça marche très bien. Par contre, pour des classes plus compliquées (avec un constructeur implicite, des relations d'héritages etc...), ça ne fonctionne pas.
    Matlab me renvoie irrémédiablement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    >> objet = MaClasseCompliquee()
    ??? Undefined function or variable 'MaClasseCompliquee'.
    A l'aide !

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Salut,

    je n'ai jamais essayer de faire cela mais c'est étonnant qu'il ne la trouve même pas... Il n'y a pas eu de message au moment de l'import?

  3. #3
    Membre actif
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Points : 213
    Points
    213
    Par défaut
    Citation Envoyé par magelan Voir le message
    Salut,

    je n'ai jamais essayer de faire cela mais c'est étonnant qu'il ne la trouve même pas... Il n'y a pas eu de message au moment de l'import?
    non, l'import n'affiche pas d'erreur. D'ailleurs, même en mettant n'importe quoi, l'import fonctionne quand même.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >> import blabla.nawak.hvbyjhfdqfeqf541.*

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bon, je n'y connais pas grand chose en import de classe java sous Matlab, donc je vais laisser quelqu'un de plus expérimenter te répondre. Par contre peut-être pourrais-tu mettre un exemple que matlab ne réussi pas à importer en fournissant la définition en java et le code exécuté sous matlab...

    Sinon, oui, effectivement import blabla.nawak.hvbyjhfdqfeqf541.* fonctione, par contre import blabla.nawak.hvbyjhfdqfeqf541 provoque une erreur...

  5. #5
    Membre actif
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Points : 213
    Points
    213
    Par défaut
    Citation Envoyé par magelan Voir le message
    Sinon, oui, effectivement import blabla.nawak.hvbyjhfdqfeqf541.* fonctione, par contre import blabla.nawak.hvbyjhfdqfeqf541 provoque une erreur...
    En fait, l'import impose de mettre le caractère spécial .* à la fin.

    Je vais essayer de construire d'autres exemples pour voir où ça ne marche pas (je ne peux pas diffuser le vrai code, développé par toute une équipe, pour des questions de confidentialité).

Discussions similaires

  1. Garder la trace d'instanciation des classes dans un fichier de config xml
    Par ilaam dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 09/06/2014, 12h24
  2. [Framework] Probléme d'instanciation des classe dao et des classe service
    Par daly2009 dans le forum Spring
    Réponses: 1
    Dernier message: 03/11/2010, 14h19
  3. [POO] Instancier des classes de base
    Par Kaeru No Uta dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 21/01/2010, 01h31
  4. [WSDL][Axis] Récupération de valeur dans des classes java
    Par cosmos38240 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 09/01/2006, 17h38
  5. Inserer des classes java existantes
    Par 2000 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 20/03/2003, 12h35

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