2009-08-09 95 views
1

我已经阅读了关于如何做到这一点的文档和几个网站,但是Matlab似乎没有拿起我已经添加到动态java类路径的类。我也不使用正确的语法来正确构造对象。如何在Matlab中使用用户定义的Java类?

我有一个HandDB类,它创建这种类型的对象并调用它的静态方法来连接到SQL数据库。该类有一个空的构造函数,不带任何参数。这个类是我在Netbeans的一个项目中做的一个包“nuffielddb”的一部分。所有的文件都在我的USB棒上,这是我的E:\驱动器...

我希望能够使用包中的所有类。该软件包包含在E:\ nuffielddb中。

我进入下面的命令到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 

有趣的我输入 '进口nuffielddb *;'并没有收到任何错误。

我到哪里去错了?

感谢您的帮助btw!

回答

1

啊问题解决了!从某种意义上来说,这并没有解决!我发现它实际上是一个与我的matlab安装问题,我不知道如何解决它:-( 没关系,它可以在办公室的计算机上工作:-)

+1

重新安装的Matlab问题解决了。 – binarycreations 2009-08-12 14:17:17

1

如果您的类在.jar文件,请确保您的类路径包含.jar文件名称本身(不仅仅是它所在的目录)。

此外,如果MATLAB JRE是Java 1.5(R2006b是,而R2009a是Java 1.6,但不确定它们何时切换),请确保您的类是以1.5作为目标编译的,而不是1.6,否则MATLAB将无法编译使用它们。

+0

只是供参考:ML R14SP3也使用java 1.5(R13使用1.4.2,我认为R14SP2也使用1.4.2,但我不再安装) – KitsuneYMG 2009-08-11 20:24:46

+0

供参考:Wikipedia有一个图表列出了大多数Matlab版本的捆绑JVM版本: http://en.wikipedia.org/wiki/MATLAB#Release_history。特别是,R14SP2使用了1.5。 – 2012-12-24 06:41:10

1

小调:。*进口绝对不会出现错误,所以它们不是诊断。他们只是简单地将一个包添加到Matlab在尝试解析类名时搜索的列表中。不存在的软件包将被忽略。

>> import this.package.does.not.exist.* 
>> 
相关问题