linux_java調用windows_matlab程序

http://www.xuebuyuan.com/zh-hant/911978.html

0 說明

本文為研究javamatlab的混合編程,進行了詳細的測試和探索,以解決linux環境下java程序調用matlab程序的一個應用。

 

linux端的環境 :(運行java程序並調用windows環境下的Matlab生成的jar包文件)

l Linux ubuntu 3.5.0-17-generic

l java version "1.6.0_45"

l MCR_R2012a_glnx86_installer.zip

windows端的環境:(調試matlab程序,並使用javabuilder生成供java調用的jar包文件)

l win7 X8632位)

l java version "1.6.0_27"

l matlab 2012a

l eclipse版本不限


(64位的方法雷同)

1 win7下安裝vmvmtool

vm上安裝win7x8632位;注意處理器是intel的。(amd處理器需要特殊處理,此處略)

2 win7下安裝matlab

7.14.0.739 (R2012a),需要虛擬光驅。

注意用standalone安裝,可以參考crack路徑下的install提示,安裝完成後需要導入證書

3 Matlab查看需要的jdk版本

>> version -java

ans =Java 1.6.0_17-b04 with Sun Microsystems Inc. Java HotSpot(TM) Client VM mixed mode

4 win7下載和安裝jdk

http://www.oracle.com/technetwork/java/javase/downloads/index.html

下載1.6的當前最高版本

 

配置:

新建 JAVA_HOME    jdk路徑

新建 CLASSPATH     .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

新建 PATH    %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

 

matlab中輸入!javac驗證是否安裝jdk成功

5 Matlab新建helloworld.m文件

function  helloworld

% clc

info=char( 'MATLAB hello world!' );

disp(info);

 

matlab中測試輸入 helloworld將會打印出這句話。

6 Matlab新建java project

可以命令台輸入 >> deploytool 調出ja

添加classm等資源,按編譯按鈕,大概需要幾分鐘時間。


7 win7下測試java調用matlab

eclipse新建一個測試工程,導入生成的helloworld.jarjavabuilder.jar(注意系統版本對應)

測試結果如下

8 linux下載和安裝mcr

下載mcr

(這裡選擇linux 32位的mcr X86)

http://www.mathworks.cn/products/compiler/mcr/index.html

 

安裝mcr

    修改installer_input.txt的字段,打開#開頭的語句,並賦值

    destinationFolder=/hadoop/matlab #    修改安裝路徑

    agreeToLicense=yes  

    fileInstallationKey=38699-60149-36808-21840-05491

    licensePath=/home/hadoop/mcr/lic_standalone.dat

    outputFile=/home/hadoop/mcr/log/1.log#修改日誌路徑

    mode=silent

等等

    ./install -inputFile installer_input.txt(如果不行則用root命令進行安裝)

如下提示則安裝成功

(Jun 17, 2013 20:09:03) Assembling product list...

(Jun 17, 2013 20:09:16) The destination folder /hadoop/matlab does not exist.  Would you like to create it?

(Jun 17, 2013 20:09:17) Installing Product: MATLAB Compiler Runtime 7.17

(Jun 17, 2013 20:11:12) Notes:

On the target computer, append the following to your LD_LIBRARY_PATH environment variable:

/hadoop/matlab/v717/runtime/glnx86:/hadoop/matlab/v717/bin/glnx86:/hadoop/matlab/v717/sys/os/glnx86:/hadoop/matlab/v717/sys/java/jre/glnx86/jre/lib/i386/native_threads:/hadoop/matlab/v717/sys/java/jre/glnx86/jre/lib/i386/server:/hadoop/matlab/v717/sys/java/jre/glnx86/jre/lib/i386

Next, set the XAPPLRESDIR environment variable to the following value:

/hadoop/matlab/v717/X11/app-defaults

(Jun 17, 2013 20:11:12) Exiting with status 0

(Jun 17, 2013 20:11:12) End - Successful.

 

下載和安裝jdk

可參考 http://developer.51cto.com/art/200907/135155.htm

配置jdkmcr

>>vi .profile   

export JAVA_HOME=/hadoop/jdk1.6.0_45

export JRE_HOME=/hadoop/jdk1.6.0_45/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

#這些是jdk的環境變量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/hadoop/mcr/bin/glnx86/:/hadoop/matlab/v717/runtime/glnx86:/hadoop/matlab/v717/bin/glnx86:/hadoop/matlab/v717/sys/os/gln

x86:/hadoop/matlab/v717/sys/java/jre/glnx86/jre/lib/i386/native_threads:/hadoop/matlab/v717/sys/java/jre/glnx86/jre/lib/i386/server:/hadoop/matlab/v717/sys/java

/jre/glnx86/jre/lib/i386

export XAPPLRESDIR=$XAPPLRESDIR:/hadoop/matlab/v717/X11/app-defaults

#後面兩個環境變量是matlab的配置路徑,安裝matlab完成後會自動提示。

其他設置

    vi ~/.bashrc

    alias matlab='/usr/local/MATLAB/MATLAB_Compiler_Runtime/v717/bin/matlab'

    如果運行matlab命令找不到libc.so.6,則sudo ln -s /lib/i386-linux-gnu/libc-2.15.so /lib/libc.so.6

    如果允許matlab命令報matlab: No MATLAB executable for this machine architecture.錯,

下載linux jdk x8632位)

http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-i586.bin?AuthParam=1371469475_8f7477cdc6c7ca6852a4cc44e7010c6c

9 linux測試java調用matlab

eclipse fat-jar對此進行打包後,注意將7中的javabuilder換成javabuilder\ja\glnx86路徑下的jar文件

成功。

 

到此,java調用matlab程序的整個過程基本敘述結束。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值