MatlabJava类给出空指针异常

MatlabJava类给出空指针异常,java,matlab,Java,Matlab,我尝试在matlab中使用java类,得到一个nullpointer异常 import com.oanda.fxtrade.api.*; public class TestLogin { public static void main(String[] args) { FXClient fxclient = null; fxclient = API.createFXGame(); System.out.print("Logging in as \"" + "\"

我尝试在matlab中使用java类,得到一个nullpointer异常

import com.oanda.fxtrade.api.*;

public class TestLogin {

public static void main(String[] args) {

    FXClient fxclient = null;

    fxclient = API.createFXGame();

    System.out.print("Logging in as \"" + "\"...");
    fxclient.setWithRateThread(true);
    try {
        fxclient.login("user", "password", "RateTicker Test");
    } catch (SessionException e) {
        System.exit(1);
    } catch (InvalidUserException e) {
        System.exit(1);
    } catch (InvalidPasswordException e) {
        System.exit(1);
    } catch (MultiFactorAuthenticationException e) {
        System.exit(1);
    }

    System.out.print("login complete. Registering listeners...");

    fxclient.logout();
}
如果我自己运行这个类,它运行得很好,它会登录,给我消息,然后注销

在matlab中,我使用

obj=TestLogin

obj.main('')
我得到:

    >> obj.main('')
API proxy version          : null
API implementation jar     : http://dynamic-api.oanda.com/oanda_fxtrade_implementation.jar
Logging in as ""...Java exception occurred:
java.lang.NullPointerException
    at com.oanda.fxtrade.api.implementation.FXClient.login(Unknown Source)
    at com.oanda.fxtrade.api.implementation.FXClient.login(Unknown Source)
    at com.oanda.fxtrade.api.implementation.FXClient.login(Unknown Source)
    at com.oanda.fxtrade.api.implementation.FXClient.login(Unknown Source)
    at TestLogin.main(TestLogin.java:32)
对于测试,我已经硬编码了用户和密码。错误来自fxclient.login行。如果有空指针,我猜它不知道fxclient在哪里?(“fxclient”是一个接口)


需要实例化的对象是什么?

您是否使用matlab使用的java版本对其进行了测试?您可以在
ver
中看到输入的版本。可能是您使用的库与该java版本不兼容。是的,版本匹配。关于如何从matlab中引用java对象,我似乎有点不明白。比如,如果“obj=TestLogin”命令创建了一个不能被其名称引用的通用对象,那么您调用该类的方式似乎是正确的,如果您查看错误堆栈,您会发现它调用了
login
函数,并且在该函数的某个地方出现了错误。您是否使用matlab使用的java版本对其进行了测试?您可以在
ver
中看到输入的版本。可能是您使用的库与该java版本不兼容。是的,版本匹配。关于如何从matlab中引用java对象,我似乎有点不明白。例如,如果“obj=TestLogin”命令创建了一个不能被其名称引用的通用对象,那么您调用该类的方式似乎是正确的,如果您查看错误堆栈,就会发现它调用了
login
函数,并且在该函数的某个地方出错。