如果你羨慕 Matlab 功能的強大、算法的精致、矩陣運算的便捷,又想遷移到別處使用,該怎么弄?以下這篇文章簡單介紹如何從一個 .m 文件生成 jar 文件,并且成功運行。
在這先推薦下 Matlab 版本,老版本推薦 r2008a,較新的版本推薦 r2015a,其他的版本在生成 java 應(yīng)用程序中容易出現(xiàn)各種意想不到的錯誤。
準備
- 在你的 Matlab 命令窗口輸入 version -java,可查看所支持的 JDK 版本
- 再在 Oracle官網(wǎng)下載對應(yīng)的jdk,配置相應(yīng)的環(huán)境變量
1. 在 Matlab 中,檢查需要部署為 java 包的 .m 文件
1.1 打開需要部署的 .m 文件,在這我建立了一個可指定生成幾介的隨機矩陣 makesqr.m 文件
function y = makesqr(x)
y = magic(x);
1.2 在 matlab 的命令窗口上方先進入剛建立的 .m 文件目錄,再在命令窗口下輸入 a = makesqr(5),輸出的結(jié)果如下:
a =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
2. 打開 Library Compiler
2.1 在命令窗口 輸入 delpoytool 出現(xiàn) Compiler 窗口

2.2 選擇 Library Compiler

2.3 在窗口上方 Appliction Type 欄中選擇Java Package
2.4 指定要部署的 Matlab 函數(shù)
- 在窗口上方 Exported Functions 欄選擇添加按鈕
- 在文件游覽框中選擇之前創(chuàng)建的 makesqr.m 文件,
2.5 在窗口上方 Packaging Options 欄中勾上 Runtime downloaded from web
2.6 在窗口右上角點擊 Package

2.7 在新彈出的框中選擇 Open output folder when process completes
2.8 創(chuàng)建完成之后出現(xiàn)以下文件

- for_redistribution — 包含安裝程序軟件包分發(fā)文件夾
- for_testing — 包含原始生成的文件來創(chuàng)建安裝程序文件夾
- for_redistribution_files_only — 僅包含重新分發(fā)包所需要的文件夾
- PackagingLog.txt — 由編譯器生成的日志文件
2.9 關(guān)閉 Package 窗口
3. 安裝 MCR(Matlab Compiler Runtime)
3.1 MCR一般位于:
MatlabROOT\toolbox\compiler\deploy\win64\MCRInstaller.exe
- 注意 MatlabROOT 為你的Matlab安裝路徑
- 環(huán)境變量 CLASSPATH也要加入 javabuilder,其位置位于:
matlabROOT\toolbox\javabuilder\jar\javabuilder.jar- 注意:matlabROOT 為你 matlab 安裝目錄
3.2 依次點擊安裝即可,一定記住安裝位置
4. 打開 for_testing 文件夾
4.1 這里有 .m 文件生成的 jar 文件,創(chuàng)建一個新的文件命名為 getmagic.java
4.2 利用文本編輯器打開 getmagic.java 文件
4.3 將一下的 java 代碼復制到 getmagic.java 文件中,保存
5. 編譯、運行應(yīng)用
5.1 打開 cmd 命令,進入到 for_testing 文件夾
5.2 編譯:
javac -
classpath"mcrROOT\toolbox\javabuilder\jar\javabuilder.jar";.\makesqr.jar .\getmagic.java
- 注意 mcrROOT 為你安裝 MCR 的目錄
5.3 運行:
java -
classpath.;"mcrROOT\toolbox\javabuilder\jar\javabuilder.jar";.\makesqr.jar getmagic 5
- 注意 mcrROOT 為你安裝 MCR 的目錄
