使用ecilpse(Java)调用Matlab代码
1 安装java环境:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
下载JDK最新版本并安装,CloudSim需要运行在jdk1.6以上版本。
以jdk1.6.0_24为例,默认的安装目录为C:\Program Files\Java\jdk1.6.0_24。
设置环境变量:
新建系统变量JAVA_HOME,变量值设为JDK安装目录,即C:\Program Files\Java\jdk1.6.0_24;
在Path中加入路径%JAVA_HOME%\bin;%JAVA_HOME%\bin\javac;
在ClassPath中加入路径%JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar
2 Matlab代码编译成Java包:
在matlab中输入命令查看是否能够访问到Java配置:
>> getenv JAVE_HOME
配置成功会返回自己配置的jdk路径,如果配置路径过程中,matlab已经打开,请重启。

新建一个函数文件funTest.m(必须是函数文件:New File->Function!文件中只能有函数,不能有独立脚本)
输入以下内容:
function [ out ] = funTest( a, b )
out = a + b ;
end
在Command Window中输入:
>> deploytool

(这里有更改,Test.prj更改为FunTest.prj)


(这里有更改,类名CTest更改为CFunTest)


找到与工程同名的文件夹对应文件”distrib\FunTest.jar“这个文件就是生成的Java包。(FunTest路径最好不要太深!否则会报错。)
3 使用64/32位MatLab+64/32位的Jre:
(切记,要保持一致。不然会调用错误,也可使用同是32位的,这里以64位为例)
32/64位Jre下载:http://www.java.com/zh_CN/download/manual.jsp
下载后安装。
4 使用ecilpse调用Matlab生成的Java包。
找到Matlab安装路径,我这里是D:\Program Files\MATLAB\R2013a\toolbox\compiler\deploy\win64下面的MCRInstaller.exe文件。进行安装。
新建一个Java工程,插入以下代码:
package Test; import com.mathworks.toolbox.javabuilder.*;
import FunTest.*; public class myFunTest {
/**
* @param args
* @throws MWException
*/
public static void main(String[] args) throws MWException {
// TODO Auto-generated method stub
CFunTest cp=new CFunTest();
Object bn[]=null;
MWNumericArray a = null;
MWNumericArray b = null;
a=new MWNumericArray(Double.valueOf(), MWClassID.DOUBLE);
b=new MWNumericArray(Double.valueOf(), MWClassID.DOUBLE);
bn=cp.funTest(,a,b); //第一个参数 1 指函数返回的变量的个数
System.out.println( bn[]);
}
}
运行后输出结果:10
调用成功!
CloudSim安装和配置
从http://www.cloudbus.org/cloudsim/下载CloudSim,以CloudSim2.1.1为例。将其解压到磁盘,例如C:\cloudsim-2.1.1。
设置环境变量:
在ClassPath中加入路径C:\cloudsim-2.1.1\jars\cloudsim-2.1.1.jar; C:\cloudsim-2.1.1\jars\cloudsim-examples-2.1.1.jar
此时,可以用同样的方法在CloudSim中对Matlab代码进行调用。
使用ecilpse(Java)调用Matlab代码的更多相关文章
- JAVA调用matlab代码
做实验一直用的matlab代码,需要嵌入到java项目中,matlab代码拼拼凑凑不是很了解,投机取巧采用java调用matlab的方式解决. 1. matlab版本:matlabR2014a ...
- (转)JAVA 调用matlab
本文仅用于学习. 原文地址链接:http://blog.csdn.net/wannshan/article/details/5907877 前段时间摸索了java调用matlab东西,不说学的有多深, ...
- java调用matlab生成exe文件
一.Matlab生成Java Package 1.在MATLAB的Command Window输入deploytool命令,选择Library Compiler. 2.在弹出的窗口选择Java Pac ...
- java调用matlab绘图
一 注意事项 1: MatLab的版本必须是2006b+(包括2006b或更高版本),因为只有在这些版本中才有MATLAB Builder for Java(也叫Java Builder). 2: 运 ...
- windows和linux环境下java调用C++代码-JNI技术
最近部门做安卓移动开发的需要调C++的代码,困难重重,最后任务交给了我,查找相关资料,没有一个教程能把不同环境(windows,linux)下怎么调用说明白的,自己在实现的过程中踩了几个坑,在这里总结 ...
- 通过JNI实现java调用C代码和C代码调用java的代码
一.java调用C代码 1)java中需要声明调用的函数,也就是native方法,并通过System.LoadLibrary来调用dll或者so(C代码).实例代码如下: public class H ...
- java调用python代码
同样的我们需要安装jython,具体的步骤如下: 1. 去 http://sourceforge.net/projects/jython/ 下载最新的jython相关的jar包. 2. 下载下来的ja ...
- java调用matlab函数
如何将实验结果在matlab中可视化呢,下面使用java语言编程,调用matlab中的函数: 本人安装的是Matlab7.11.0 (R2010a)和 Eclipse 4.2 : 1)首先设置环境变量 ...
- 01_JNI是什么,为什么使用,怎么用JNI,Cygwin环境变量配置,NDK案例(使用Java调用C代码),javah命令使用
1 什么是JNI JNI Java本地开发接口 JNI是一个协议,这个协议用来沟通java代码和外部的本地代码(C/C++) 通过这个协议,java代码就可以调用外部的C/C++代码,外部的C/C++ ...
随机推荐
- Vue全家桶了解一下(待补充)
vue全家桶了解一下 一.vue+vue-router+vuex+axios1.vue:使用vue-cli,生成最基本的vue项目2.vue-router:vue项目中的路由管理插件3.vuex:vu ...
- 求js数组的最大值和最小值
数组 ,,,,,,,,,]; 方法1 - 字符串拼接法 利用toString或join把数组转换为字符串,再和Math的max和min方法分别进行拼接,最后执行eval方法 var max = eva ...
- photoshop特效字体
一.3D效果字 3D效果文字给人以纵伸感.立体感和真实感,是商家常用到的一种宣传文字.虽然Photoshop软件是平面软件,但是在制作3D效果文字时却游刃有余. 3D效果字的制作可分以下三步完成. 输 ...
- jenkins出现的问题
1.增加服务器时 要修改时,,需要设置 2:出现这个问题是 执行了npm install node-sass
- 配置MapReduce程序运行环境
已安装eclipse,hadoop 查看教程dblab.xmu.edu.cn/blog/hadoop-build-project-using-eclipse/
- Mybatis学习笔记8 - resultMap自定义结果集映射规则
一.resultMap自定义结果集映射规则 示例如下: 接口定义: package com.mybatis.dao; import com.mybatis.bean.Employee; public ...
- centos7.3 安装cuda8.0的 坑
1. 安装依赖 yum -y install gcc-c++yum -y install epel-releaseyum -y install --enablerepo=epel dkmsyum -y ...
- verilog if语句
a.基本形式 1) if(表达式) 语句1: 2)if(表达式) 语句1: else 语句1 3) if(表达式1) 语句1: else if(表达式2) 语句2: else if(表达式3) ...
- POJ 1236——Network of Schools——————【加边形成强连通图】
Network of Schools Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u ...
- mybatis批量插入insert时报错
报错信息: 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确.此 RPC 请求中提供了过多的参数.最多应为2100 错误分析: 由于mybatis拼接的sql语句参数过多导致 解决办法 ...