Open Source
    Microcontroller
    Automatic Control
    Coding Notes

2014年5月8日 星期四

將 Processing 程式完整打包成 jar 檔案

上午10:28 Posted by Unknown , , No comments

Processing 這款開源軟體,對於從事科技藝術的創作工作者來說肯定不陌生,以其繪圖功能見長,即便不是專業的程式設計師,透過幾行簡單的程式碼,就可以產生有趣的視覺輸出,而越來越豐富的 library 資源與社群,使得以 processing 開發圖形介面、遊戲、網頁或是 android app 程式都日趨方便。


Processing 支援跨平台,其程式語言以 JAVA 為基礎,程式編輯腳本 (script) 被稱為 sketch,並儲存為 *.pde 檔,當程式撰寫完成,雖然可以直接按下 run 執行,但其實我們更應該將程式打包成一可獨立運作的應用程序,這時候第一個想到的就是 Processing 內建的 Export Application 功能。 較舊的 Processing 版本,支援跨平台的匯出,也就是在 Windows下編輯好的程式,可以匯出檔案給 Macintosh或是 Linux 系統執行,但自 Processing 2.1 起,匯出功能僅針對開發者的作業系統生成出相應的檔案,如在 Windows (x86) 下就只產生 *.exe 檔,附帶一包相連的 lib 資料夾,雖然多了一些匯出 JAVA 的功能,但我覺得還是不太方便。

Processing 2.1+ 匯出功能
Processing 舊版匯出功能















執行匯出的 *.exe 檔仍然會去抓 lib 資料夾裡的 java(*.jar) 檔案,表示這 Processing 小程式仍然不是獨立運作,這還蠻詭異的 ....... 既然是基於 JAVA 語言的開發,而 JAVA 的優勢之一便是其可跨平台執行的能力,怎麼搞了半天還是綁手綁腳呢? 我們需要更完整的打包方法。  

lib 資料夾裡的 *.jar 檔
不太方便的 *.exe 檔


為了打包 Processing 程式,網路上可找到非常實用的小工具:

1. SvgExe.jar
2. ProcessingLibrary.jar

主要的打包流程是利用 SvgExe.jar 這個程式將 Processing 匯出時產生的 *.jar 檔案與 Processing 的原生資料庫( ProcessingLibrary.jar) 整合一起匯出,便可產生一份跨平台執行的獨立 *.jar 檔案,只要是有安裝較新版 JRE 的系統,基本上以滑鼠雙擊就可以執行開啟,非常方便。

當你在 Processing 執行匯出時,在 lib 資料夾中會產生一份與原檔名相同的 *.jar 檔,將其與下載的 ProcessingLibrary.jar 一同匯入 (Add)  SvgExe.jar 中:

在 Step 1: Classes 中將 *.jar 檔案 Add 進來


對於較單純的應用, Step 1 完之後可直接跳到 Step 5: Output,在此輸入主要類別名與檔案輸出路徑,基本上這些也都跟原檔名相同,按下GO,便可產生打包好的 *.jar 檔案:

Step 5: Output 設定



雙擊 *.jar 檔彈出繪圖視窗,直接執行 Processing 的繪圖內容,大功告成。

產生的 *.jar 檔案與執行視窗



更詳細的說明,可以參考這裡:

0 意見:

張貼留言