Java与Matlab成功合体啦_matlab打包java选择matlab版本-程序员宅基地

技术标签: matlab  java  Java-GO  

Java&Matlab混编初始设置

目录:

  • JDK&JRE,Matlab,以及Windows系统版本

  • JDK版本及其环境配置

  • Matlab安装

  • Matlab端函数M文件打包成Jar

  • Myeclipse创建Java项目,并编写调用主函数


JDK&JRE,Matlab,以及Windows系统版本

  Windows系统版本:Win7 旗舰版,64位
  JDK&JRE:jdk1.7.0_79_64位,运行环境jre1.7.0_79_64位,配套编辑工具为:MyEclipse 10 (三者均为配合java开发同事的版本而配);jdk在甲骨文中的下载地址,以及登录甲骨文需要的账号密码,
  Matlab:Matlab R2015a 64位(不同matlab版本对应不同java版本,此处加上matlab对应jdk的表,以及怎么查看matlab适合的jdk版本,和matlab目前处于什么版本的jdk)

JDK版本及其环境配置

jdk&jre下载:http://www.oracle.com/technetwork/java/javase/archive-139210.html由该地址进入,下载符合你系统软件要求的版本;如需下载最新版本,请直接去oracle首页下载。
jdk安装较为简单,安装完成后必须进行环境变量配置。
jdk环境变量配置步骤如下
(1)计算机—>系统属性—>高级—>环境变量;
(2)系统变量中添加两个变量:(i)JAVA_HOME,值为D:\Applications\Java\jdk1.7.0_79这是jdk在我电脑里的安装路径;(ii)classpath,值为.;D:\Applications\Java\jdk1.7.0_79\jre\lib\rt.jar;
(3)系统变量中的Path变量的值最前面添加如下路径:%JAVA_HOME%\bin;
(4)变量配置完成,随后cmd进入命令窗口,输入java -version回车,出现如下输出,证明环境变量配置成功。
这里写图片描述

Matlab安装

由于jdk是1.7.0_79,那么和这个版本jdk兼容的matlab版本偏高,本机选择Matlab R2015a版本,附下载和安装地址:http://www.yishimei.cn/network/549.html
安装过程中,安装到产品配置说明(Product Configuration Notes)时,请注意里面的各项说明,特别是Matlab Runtim,SDK,MCR三项,必要时请手动下载安装这两项;具体也说不清楚为什么,可能与M文件package成jar包时的编译环境有关。第一次没有手动安装上面三个文件,package的时候出现warning,甚至直接无法package成功。
安装成功后,在matlab command窗口输入如下两个命令:version -java,getenv JAVA_HOME,输出结果如下:
这里写图片描述
version -java:输出为matlab r2015a兼容的jdk版本1.7版本
getenv JAVA_HOME:输出为当前jdk版本1.7.0_79,属于1.7版本
如此可见,当前jdk版本与matlab版本互相匹配

Matlab端函数M文件打包成Jar

这个打包过程,论坛中已有很多伙伴分享,且不存在什么技术性问题,在此就不再重复赘述。

Myeclipse创建Java项目,并编写调用主函数

本机用的是myeclipse10,安装完成后
这里写图片描述
按照上图黄圈的路径,可找到已安装的JDK.一般,Sun JDK1.6为myeclipse自带的jdk,只需勾选自己安装的jdk即可。
到目前为止,非软件出身的编程小白就暂时自认为,此刻JAVA,MATLAB,MYECLIPSE已经完全配置安装完成了。接下来就进入正式工作——java调用matlab函数

创建java project

(I)project里面创建类,导入build path—>add external archieves—>(1)在matlab上自己package的jar 包:import myfuzzy2.*;
(2)matlab自带toolbox—>javabuilder—>jar里面的java工具包:import com.mathworks.toolbox.javabuilder.*;
(II)编写主函数
编程小白,接触java2周,依样画葫芦,摸索着写出来属于自己的java调用matlab主函数,且编译通过。总结一下几点:
(1)输入输出的传递;
(2)MWNumericArray类的调用和实例化;(3)try……catch……finally语句运用;
(4)MWArray.disposeArray,MWClassID.DOUBLE,父类Object[],实例化例句:Class1 theFactor=new Class1();……

以上这些总结点都是出于半懂不懂之间,甚至还不及,学习的路还很长……

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/faylpf/article/details/52164443

智能推荐

OpenSSL简介-程序员宅基地

文章浏览阅读5.6w次,点赞30次,收藏209次。基本概念 1. openssl是一个安全套接字层密码库,囊括主要的密码算法、常用密钥、证书封装管理功能及实现ssl协议。OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库libssl、应用程序命令工具以及密码算法库libcrypto。 2. SSL:Secure Socket Layer,安全套接字层协议,分为SSLv2和SSLv3两个版本,TSL在SSL3.0基础之上提出的..._openssl

Android Camera1-Camera2-CameraView和CameraX使用_camera2view-程序员宅基地

文章浏览阅读5.1k次,点赞8次,收藏48次。基础知识Android Framework提供Camera API来实现拍照与录制视频的功能,目前Android有三类API,Camera 此类是用于控制设备相机的旧版 API,现已弃用,在Android5.0以下使用 Camera2 此软件包是用于控制设备相机的主要 API,Android5.0以上使用 CameraX 基于Camera 2 API封装,简化了开发流程,并增加生命周期控制相关开发类android.hardware.camera2 控制相机的核心API,使用它可以实_camera2view

python图像处理,float[0.0, 1.0]转uint8[0, 255],cv2.imwrite()图像全黑问题_python 浮点转换成uint8-程序员宅基地

文章浏览阅读1.5w次,点赞20次,收藏38次。代码一、问题描述二、解决方法先上代码img*=250.0img = img.astype(np.uint8)一、问题描述cv2.imshow()能显示图像,但cv2.imwrite()保存的图片是近乎全黑的imwrite()print(img),部分截图如下查看图片数组的 数据类型。print(img.dtype)现在的格式是float32,本应该要是0-255的整数才行,..._python 浮点转换成uint8

关于grid安装的一些错误_make sure that xdpyinfo-程序员宅基地

文章浏览阅读2.5k次。1、This application requires X displayERROR: Unable to verify the graphical display setup. This application requires X display. Make sure that xdpyinfo exist under PATH variable.解决方式:oracle安装图形显示依赖X display,需安装xorg-x11-utils包,按以下方式安装后验证。[root@grid1-dah_make sure that xdpyinfo

深入解析hive中的NULL(空值)和''(空字符串)_hive null-程序员宅基地

文章浏览阅读2.5w次,点赞11次,收藏79次。一、hive里面的 null(空值) 和 ''(空字符串) 是两个不同的东西1、如果查某个字段【 a 是否为空】应该这样写:a is nullais not null2、如果查某个字段 【a 是否为''】应该这样写:a = ''a <>''在hive的数据中,null值(空值)较为常见,比如字段没有值,就是所谓的null值(空值),而 ''(空字符串)..._hive null

MSP432库函数输出多路任意占空比PWM波_msp432pwm-程序员宅基地

文章浏览阅读3.5k次,点赞8次,收藏40次。4. TIMER_A_CAPTURECOMPARE_REGISTER_1 使用寄存器CCR1。2.TIMER_A_CLOCKSOURCE_DIVIDER_10,预分频系数设置为10;由手册可以知道,定时器TA0,寄存器CCR0~CCR4对应P2.4 - P2.7。1.默认时钟源SMCLK,但可在主函数提前设置DCO时钟源,实现主频48MHZ;定时器TA1,寄存器CCR0~CCR4对应P7.4 - P7.7。6. 0,初始占空比设值。_msp432pwm

随便推点

[OpenCV实战]7 距离变换-细化字符轮廓&&查找物体质心_距离变换质心-程序员宅基地

文章浏览阅读206次。https://blog.csdn.net/chaihuimin/article/details/76724714_距离变换质心

STM32 开发板代码移植到核心板串口乱码-程序员宅基地

文章浏览阅读138次。  为了改这个bug,我花了一天的时间……只能怪自己,没学好时钟这一块的库函数和宏407 的标准库里 默认 使用 25M 的外部晶振  而我的是 8M 的外部晶振,所以自行写了一个宏  然后 串口 就好使了,怎么看自己的开发版晶震是多少  如果没有写可以去查一下型号真就自己太菜了,第一时间没有考虑到 时钟  电赛不易,诸君共勉!..._核心板可以用开发板的代码吗

Python+Selenium实现最E网自动填卷-程序员宅基地

文章浏览阅读2.8k次。Python实现最E网10积分自动做题 朋友推荐的最E网调查问卷,刚开始做挺开心的,后面发现老是要自己点选项,总感觉特别浪费时间,填的想吐,长的调查需要做半个小时多,还有可能失败。于是我将重心放到了10积分的小调查了,又快又没坑,但总无脑做感觉巨没意思,正好楼主是个程序员,喜欢研究些辅助脚本。这时候又到了我大Python出马的时候了,作为21世纪现代人,当然得来点智能的了,废话说多了,开搞。..._最e网

springboot集成redis序列化配置_springbootredis序列化-程序员宅基地

文章浏览阅读2.3k次。1.当我们的springboot集成了redis,然后通过springboot程序往redis设置信息,做缓存使用,如果没有使用序列化的时候,也是可以set进去的,不过是这样子的库里的值:value信息:看到的都是这样子的,为什么是这样子呢?大白话说,就是你放在程序里的话,翻译完,咱们看不懂了,作为程序员,我们叫做这个值没有做系列化设置,导致编译完,计算机以自己的形式保存,取值是能取出来的,但是看着就是不爽,那么下面我来做序列号设置,以及一些缓存的设置,配置信息如下:@Config_springbootredis序列化

socket(AF_INET, SOCK_RAW, IPPROTO_IP)的意思_socket(af_inet, sock_dgram, ipproto_ip)-程序员宅基地

文章浏览阅读3.9k次,点赞2次,收藏8次。这是include/linux/in.h里的定义:/* Standard well-defined IP protocols. */enum {IPPROTO_IP = 0, /* Dummy protocol for TCP */IPPROTO_ICMP = 1, /* Internet Control Message Protocol */IPPROTO_IGM_socket(af_inet, sock_dgram, ipproto_ip)

TOPO DN 解析_dc=bj,subnetwork=1,managedelement=sn-程序员宅基地

文章浏览阅读2.2k次。有一个算法,是将大量TOPO DN实例解析成结构形式,并根据DN获取相应的数据。本人感觉值得分享,并供大家讨论与优化。_dc=bj,subnetwork=1,managedelement=sn

推荐文章

热门文章

相关标签