java调用matlab遇到的问题

1.java调用matlab,matlab在打印的时候,一直打印到五千多零六的时候,就停止了,不报任何的错误,java无法获取,在执行的时候,总会以程序异常终止为由,停止工作。

test.m文件内容(这个只是用来测试)

function test()

	run_times = 200000; %定义运行多少次
	for i = 1:1:run_times
		pause(0.05);
		disp(['run', num2str(i), 'times']);
	end
end

java方法

public String testLinuxMatlabExecute(){

	//获取matlab代理
	File file = new File("/home/ml/matlab");//知道m文件的路基,可以任意
	MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder()
			.setProxyTimeout(300000L)
			.setMatlabStartingDirectory(file)//设置MATLAB的开始目录。
			.setLogFile("/home/ml/matlab/matlabLog.log")
			.setHidden(false)
			.build();
	MatlabProxyFactory factory = new MatlabProxyFactory(options);
	MatlabProxy proxy = null;
	try {
		proxy = factory.getProxy();
	} catch (MatlabConnectionException e) {
		e.printStackTrace();
	}
	//通过代理执行mtalab函数
	JSONObject json = new JSONObject();
	try {
		//通过代理执行mtalab函数
//            Object[] result = proxy.returningFeval("test",1, x, y);//调用sumOne.m函数,传入input参数,
		proxy.eval("test");
		System.out.println("成功:************************");
		proxy.exit();//断开与matlab的连接
	} catch (MatlabInvocationException e) {
		e.printStackTrace();
	}
	return json.toString();
}

然后通过修改java代码:

MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder()
                .setProxyTimeout(300000L)
                .setUsePreviouslyControlledSession(true)
                .setMatlabStartingDirectory(file)//设置MATLAB的开始目录。
                .setLogFile("/home/ml/matlab/matlabLog.log")
                .setHidden(true)
                .build();

通过接口访问这个调用matlab程序。就会一直打印日志,之前只有打印到五千多,就停止了:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值