【问题标题】:MATLAB java classesMATLAB java类
【发布时间】:2013-03-16 01:37:54
【问题描述】:

我在 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。

【问题讨论】:

  • 作为调试提示,能否将 JAR 的完整路径设置为类路径?
  • @ShmilTheCat fullfile 函数给出完整的、绝对的路径(即'C:\stuff\morestuff\whatever\Compiled\SpectrometerInterface.jar'),是你要求的,还是我有误会了吗?
  • 你应该区分 dynamic 类路径和静态类路径,请看mathworks.com/help/matlab/ref/javaclasspath.html 更改 classpath.txt 应该会吸引你
  • @ShmilTheCat 使用静态路径似乎也无法解决问题。
  • 你重启了 MATLAB 吗?更改文件后?

标签: java matlab interface


【解决方案1】:

请查看this 并设置您的classpath.txt

【讨论】:

    猜你喜欢
    • 2015-06-29
    • 2011-06-19
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    相关资源
    最近更新 更多