2009-08-09 6 views
1

J'ai lu la documentation et plusieurs sites Web sur la façon exacte de procéder, mais Matlab ne semble pas prendre en compte les classes que j'ai ajoutées au chemin de la classe Java dynamique. Je n'utilise pas non plus la bonne syntaxe pour construire correctement l'objet.Comment utiliser les classes Java définies par l'utilisateur dans Matlab?

J'ai une classe HandDB et laquelle créer un objet de ce type et invoquer ses méthodes statiques pour se connecter à une base de données SQL. La classe a un constructeur vide et ne prend aucun paramètre. La classe fait partie d'un paquet 'nuffielddb' que j'ai fait dans un projet au sein de Netbeans. Tous les fichiers sont sur mon stick USB qui est mon E: \ drive ...

Je voudrais être en mesure d'utiliser toutes les classes dans le paquet. Le paquet est contenu à E: \ nuffielddb.

je suis entré dans les commandes suivantes dans Matlab:

javaaddpath('E:\'); 
javaclasspath; % Output from java class path includes E:\ within dynamic path 
str = java.lang.String('Test'); % Works fine 
db = nuffieldbd.HandDB(); % Does not work - undefined variable or class error 

Intéressant je tapais. Nuffielddb import *; ' et n'a reçu aucune erreur.

Où je me trompe?

Merci pour votre aide btw!

Répondre

1

Ah problème résolu! Eh bien pas résolu dans un sens! J'ai découvert que c'est vraiment un problème avec mon installation matlab et je n'ai aucune idée de comment résoudre ce problème :-( Peu importe, cela fonctionne sur les ordinateurs au bureau :-)

+1

Problème de Matlab réinstallé résolu. – binarycreations

1

si vos classes sont dans un fichier .jar fichier, assurez-vous que votre chemin de classe inclut le nom de fichier .jar lui-même (pas seulement le répertoire dans lequel il se trouve). Si le MATLAB JRE est Java 1.5 (R2006b est, alors que R2009a est Java 1.6, pas sûr quand ils ont changé), assurez-vous que vos classes sont compilées avec 1.5 comme cible, pas 1.6, sinon MATLAB ne pourra pas pour les utiliser.

+0

juste FYI: ML R14SP3 utilise également Java 1.5 (R13 utilisé 1.4.2, je pense que R14SP2 utilisé 1.4.2 aussi mais je n'ai plus installé) – KitsuneYMG

+0

FYI: Wikipedia a un tableau listant la version JVM fournie pour la plupart des versions de Matlab: http://en.wikipedia.org/wiki/MATLAB#Release_history. En particulier, R14SP2 utilisé 1,5. –

1

Note mineure:. * Les importations n'échoueront jamais, donc elles ne sont pas diagnostiques. Ils ajoutent simplement un paquet à la liste que Matlab recherche en essayant de résoudre un nom de classe. Les packages inexistants sont ignorés.

>> import this.package.does.not.exist.* 
>> 
Questions connexes