需求
有matlab代碼寫好的程序,需要在java中調用,有兩個選擇:
1. 用java實現相同功能的程序
2. 使用java調用matlab程序
果斷選擇第二種,這就需要將matlab程序打包成jar包,然後供java程序調用。記錄一下打包過程。
環境
將matlab程序打成jar包,需要特殊的JDK環境,查看自己的matlab支持什麼版本的jdk的命令是:version –java
可以看出需要的是jdk1.7,查看自己的環境變量是否爲此版本,命令是: getenv JAVA_HOME
JDK是1.7版本,環境符合。如環境不正確就需要安裝所需版本的JDK,並配置環境變量。
打包
在matlab命令行中輸入deploytool,出現如下界面,選擇中間的Library Compiler
接下來按下圖設置
打包後會生成for_redistribution ,for_redistribution_files_only和for_testing三個文件夾以及打包日誌文件 PackagingLog.txt 。以 for_testing 文件夾爲例,其下目錄如下圖所示,clu_dbscan.jar即爲最終的jar包
編程
- Eclipse也需要jdk1.7的版本,但MyEclipse不支持1.7,所以需要選用其它版本的eclipse.
- 需要將生成的clu_dbscan.jar以及matlab軟件中的javabuilder.jar( MATLAB\R2014a\toolbox\javabuilder\jar\win64 )一併導入到java工程中。
- 若運行程序出現找不到mclmcrrt8_3.dll( \MATLAB Compiler Runtime\v83\runtime\win64 )的情況,則將其路徑放入環境變量PATH中;若還有問題,則將mclmcrrt8_3.dll直接拷貝到C:\Windows\System32中。