我在 MATLAB 中使用 java 包时遇到了困难
首先,我将我的 .jar 添加到动态路径中:
filename = fullfile(pwd,'Compiled','SpectrometerInterface.jar');
ls(filename)
javaaddpath(filename);
ls
返回SpectrometerInterface.jar
确认文件存在,并javaclasspath
确认确实已添加。
然后当我请求一个对象时,使用
obj = javaObject('com.jellymatter.spectrometerinterface.UDPSpectrometer');
或者
obj = com.jellymatter.spectrometerinterface.UDPSpectrometer()
它说找不到课程。它肯定在.jar中的正确目录中,我的类的简化版本如下
package com.jellymatter.spectrometerinterface;
public class UDPSpectrometer {
private UDPInterface inter = null;
public UDPSpectrometer(){
/* Nothing here */
}
public void connect(String addr, int p1, int p2) throws CommunicationException{
...
}
public double[] get() throws CommunicationException, SpectrometerNotCalibratedException {
...
}
}
有什么建议么?
编辑:诊断
MATLAB 的 Java 虚拟机为已编译的 java (JDK 1.7) 降低了版本 (JRE 1.5)。
编辑:解决方案
我通过使用 JDK 1.5 编译解决了这个问题,但也可以在 MATLAB 中升级 JVM。