Matlab如何打包成jar並給java使用(混合編程)

Matlab如何打包成jar並給java使用

由於期末數字圖像課程設計需求,使用matlab碼好了函數可是沒有界面,所以打算用jsp隨便搞一搞,可是這樣就要跨語言編程了(說得很高大上其實就是打成jar然後丟到項目lib包裏面去),這時就需要打包成jar供,廢話少說直入重點。
首先你需要將環境變量該成你matlab版本兼容的jdk,比如我用的是matlab2015,而他需要的是jdk1.7,如果jdk版本不同會導致打包不了(我用1.8的打包不了。。。)。
接着你需要打開你的matlab,並且在控制檯輸入 deploytool
這裏寫圖片描述

接着選擇第三個Library Complier
進入頁面後左上角有個可以選着打包類型的,這裏選java package,然後是他右邊有個選擇函數的,這裏用一個簡單的計算a+b函數爲例(點擊左邊那個加號可以添加函數),最後要注意的是最下面的有個class name ,這個名字是到時候你在java那邊使用這個函數的類名,可以取一個有意義的類名,這裏演示而已就直接使用默認的Class1
這裏寫圖片描述

萬事具備後點擊右上角綠色的勾勾(Package)
如果jdk版本不一致會導致一下錯誤

這裏寫圖片描述

成功的話就會彈出你打包好的文件夾

這裏寫圖片描述

然後選擇中間那個裏面的jar文件,將他導入到項目裏就可以用了,注意除了導入這個包還要導入Matlab所需要的支持包javabuilder.jar

接下來是簡單的使用演示。

import com.mathworks.toolbox.javabuilder.MWException;

import mySum.*;

public class Test {
    public static void main(String[] args) {
        try {
            Class1 myClass1 = new Class1();
            Object[] result = myClass1.mySum(1,1,2);
            System.out.println(result[0]);
        } catch (MWException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

這裏需要注意的是mySum方法第一個參數的意思是輸出的參數個數,比如a+b輸出一個c,所以就是1,接下來第二個參數開始纔是你原函數輸入所需要的參數。

以上就是所有內容了,不懂的可以問我。

附帶一下參考資料
這個是打包的
https://jingyan.baidu.com/article/adc8151387caeaf723bf732f.html
這個是使用的
http://blog.csdn.net/dongzhe8/article/details/39925847

發佈了22 篇原創文章 · 獲贊 13 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章