java/matlab混合编程应用移植到其他电脑上遇到的问题

问题1:jar包部署在其他电脑上设置vm参数无效

@echo off
start java -Xmx1028M -Xms1028M -XX:PermSize=100M -XX:MaxPermSize=100M -XX:SurvivorRatio=8 -jar Edition_1.0_fat.jar

要把参数设置在前面才有效,开始把jar包放前面虽然自己电脑能运行但是其他人的电脑不能运行

问题2:# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c911010, pid=3244, tid=280
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_02-b09 mixed mode, sharing)
# Problematic frame:
# C [nativemcl.dll+0x1010]
#
# An error report file with more information is saved as hs_err_pid3244.log
#
# If you would like to submit a bug report, please visit:
HotSpot Virtual Machine Error Reporting Page

这个问题真的是十分的难搞定,网上google,baidu了好久都没有解决方案,在我打了一盘dota之后,突然来了灵感!!!!我先说说我为什么会出问题,我是用java调用matlab的代码编swing框架的一个算法程序,在代码进行到调用matlab函数的时候出现了这个问题,这是内存泄露的问题,在我自己的电脑上并没有这个问题,但是在别人电脑上有,琢磨了好久后终于发现了端倪!下面是我的解决办法

右击我的电脑-》属性-》高级系统设置-》高级目录下的环境变量-》系统变量中的path->>将jre的path路径放在matlab的运行环境前!!!这里是最关键的一步

例如%JAVA_HOME%\jre\bin;D:\matlab\my_bin\runtime\win64;这样就不会出现问题了,至少我的是这么解决的,并且我还没看到过其他的解决办法,网上有很多人说是jdk的原因,个人感觉有些可能是,但是绝大部分不是

# C [nativemcl.dll+0x1010]这句话,这是调用了本地库!!应该就是进入matlab的代码层,是在调用环节出的问题

还有一个问题,是没找到类,具体错误信息这里忘记了,没给出来,我这里给出一些思路,就是你用高级的jdk(例如1.8)编写的程序放在了低级的jre(1.7)上运行,有些类型就找不到,所以编写程序的时候一定要注意jdk的版本号,下面是关于jdk的一篇文章

java compiler compliance level jdk区别

当打成jar包时会出现这个问题,我遇到过两次,光看日志真的是很难找到解决办法,其实最根本的解决办法还是跟换path中的jdk版本,我用1.8打包不成功,matlab是2014的,可能不支持最新的1.8.换成1.7就能成功了!

java/matlab混合编程应用移植到其他电脑上遇到的问题

时间: 2024-10-05 14:19:48

java/matlab混合编程应用移植到其他电脑上遇到的问题的相关文章

java matlab 混合编程

问题描述: Exception in thread "main" java.lang.UnsatisfiedLinkError: Failed to find the required library mclmcrrt9_2.dll on java.library.path. This library is typically installed along with MATLAB or the MATLAB Runtime. Its absence may indicate an i

SWIG - 同Java的混合编程

同Java的混合编程 - SWIG 最后更新日期:2014-04-20 阅读前提:推荐已经阅读<同C#的混合编程_SWIG入门>, 有Eclipse下编写JavaProject的经验. 作者: Kagula 环境:Windows 8.1 64bit(英文版).VisualStudio 2013 Update1(英文版).SWIG Win 3.0.0 .JDK 1.6.0_45 64bit.eclipse-jee-kepler-SR1-win32-x86_64 正文: 新建C++工程用于测试Ja

c#与matlab混合编程探索

以下讲述如何使用c#来调用matlab函数实现北斗定位算法的仿真 1.准备 首先需要matlab2010,vs2010(其他版本是否可行,未知),另外需要安装matlab的辅助工具MCRInstaller(该工具无需下载,在安装好的matlab程序包中可以找到,例如:E:\matlab 2010\toolbox\compiler\deploy\win32) 2.准备matlab程序 上述截图是我的定位程序所涉及到的函数 3.matlab程序处理为dll文件,供c#调用,处理的基本步骤如下: (1

VC与Matlab混合编程之调用动态链接库dll(C++)——&lt;二&gt;

VC与Matlab混合编程之调用动态链接库dll--<二> 1.是先建立 matlab 的 m 文件. ellipsefit.m 其包含:function [Xc,Yc,A,B,Phi,P]=ellipsefit(x,y) 2.MCC命令编译生成得到h.dll.lib等文件 在matlab命令行中输入: mcc -W cpplib:ellipsefit ellipsefit.m -T link:lib (此方式为c++风格函数) (具体命令含义可参考<精通matlab与C/C++混合程序

VC++和Matlab混合编程(在VC中调用将.m文件生成的DLL)

这是师兄们在实际项目中用到的关于VC++和MATLAB混合编程的实例.最近自己在瞎鼓捣,也就研究了下这块,本想写篇博文,但网上这块的资料还算是比较多,写的也比较具体,想着不重复劳动,因此我也就不写了. //提取节点信息 mxArray *csd_path; mxArray *save_path; mxArray *mat_path=mxCreateCellMatrix(NULL,NULL);//mxCreateCellMatrix:创建二维单位矩阵 mxArray *analog=mxCreat

VS2013调用MATLAB混合编程

Visual Studio和MATLAB混合编程,有两种方法: 1 MATLAB调用C程序: 2 VS调用MATLAB(目前见到的都是VS,其他编译器如codeblocks,或不提供这项功能): 前一种是用MATLAB的mex命令调用VS或其他编译器,将以一定方式编写出的C文件编译成.mexw32(针对win32)或者.mexw64(针对win64),然后MATLAB就可以用调用动态链接库的方式,调用C程序.这一过程中,只需要在安装好编译器的前提下,执行: mex -setup 和 mbuild

C++和MATLAB混合编程-DLL

先小话一下DLL,DLL是动态链接库,是源代码编译后的二进制库文件和程序接口,和静态链接库不同的是,程序在编译时并不链接动态链接库的执行体,而是在文件中保留一个调用标记,在程序运行时才将动态链接库文件加载入内存.并且DLL在运行时是共享的,即当多个程序调用时,内存中也只保持一份动态链接库. 动态链接库的调用有显式和隐式两种方式. 隐式链接需要用到我们前面生成的plotdata.c,plotdata.h,plotdata.lib以及plotdata.dll文件. 首先将plotdata.c,plo

关于C++与Matlab混合编程错误??? Unexpected Standard exception from MEX file.

 最近在用c++和matlab 混合编程是遇到了一些问题,如下: ??? Unexpected Standard exception from MEX file. What() is:c:program Error in ==> mscale at 32 [rho,s] = matscale(abs(a),0.01); Error in ==> utScaledExpm at 7 [s,junk,a] = mscale(a,'noperm','safebal'); Error in ==&

C/C++与Matlab混合编程初探

欢迎转载,尊重原创,所以转载请注明出处. http://blog.csdn.net/bendanban/article/details/37830495 Matlab 拥有丰富的功能,编程简单.不过,有些情况下,Matlab程序的执行速度比较慢.C/C++编译执行的程序速度比较快,编程难度上比Matlab要高一些.因此存在一种方案,就是使用Matlab实现我们的实验程序,用C/C++来实现Matlab程序中比较耗时的部分,从Matlab程序中调用C/C++的程序以实现加速. 本文主要讲解如何在M