我已经阅读了有关如何执行此操作的文档和几个网站,但是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
有趣的是我输入'import nuffielddb。*;'并没有收到错误。
我哪里出错?
感谢您的帮助btw!
答案 0 :(得分:1)
答案 1 :(得分:1)
如果您的类位于.jar文件中,请确保您的类路径包含.jar文件名本身(而不仅仅是它所在的目录)。
如果MATLAB JRE是Java 1.5(R2006b是,而R2009a是Java 1.6,不确定何时切换),请确保您的类编译为1.5作为目标,而不是1.6,否则MATLAB将无法使用它们。
答案 2 :(得分:1)
次要注意:。*导入永远不会出错,因此它们不会被诊断。他们只是将一个包添加到Matlab在尝试解析类名时搜索的列表中。不存在的包将被忽略。
>> import this.package.does.not.exist.*
>>