2009-10-09 35 views
4

我無法找到像樣的可可圖表庫,所以我想使用JFreechart。從可可應用程序調用Java程序

有沒有辦法從Cocoa應用程序調用Java程序? 我在編寫一個返回圖表圖像的Java應用程序,我會在我的Cocoa應用程序中顯示它。

謝謝

+0

您是否有任何關於是否允許用於Mac AppStore的沙盒應用程序調用Java的信息? – Raffael 2013-01-03 10:37:00

回答

5

蘋果如何創建一個使用JNI在Xcode應用程序很好(但有些舊)的示例代碼項目:

http://developer.apple.com/java/jniuniversal.html

一定要檢查出與之相關的代碼示例:

http://developer.apple.com/samplecode/MyFirstJNIProject/MyFirstJNIProject.html

同樣在此技術Q &答:

http://developer.apple.com/mac/library/qa/qa2005/qa1295.html

我使用該示例成功創建了一個應用程序,該應用程序使用JNI在運行時啓動並與單個JVM實例進行通信(而不是產生大量NSTasks,如同下面#2中提到的Pablo)。基本上,我花了巴勃羅的第一個建議的方法下面這個程序:

http://ditchnet.org/xslpalette

+0

我會研究使用JNI,謝謝你的鏈接。 – simao 2009-10-09 14:33:49

+1

當然可以。 :)一個建議的話,如果我可以......做這種事情是屁股真正的痛苦。我還沒有對C/C++/ObjC中的本地圖表工具進行任何研究,但是如果您能找到本地圖表工具,那麼最好花時間學習本機工具,而不是花時間在JNI /與Java交談。可以節省您的時間/頭痛。但是,我再也沒有看過,所以我不太確定。 :| – 2009-10-09 18:55:05

4

據我知道你有兩種選擇:

  1. 使用Java本地接口(JNI)和C(可可)調用Java類。
  2. 在您的COCOA應用程序中啓動一個單獨的java進程爲您創建圖形。您可以使用NSTask

在我看來,即使第一個選項更難實施,它更優雅,可能更快。但第二種選擇肯定會花費更少的時間來實施。

希望它有幫助。

6

你可能想看看Core Plot框架,適用於Mac和iPhone可可原生繪圖框架。這是相對較新的 - 不像JFreeChart那樣成熟 - 但它可以做你需要的。它肯定會爲您節省JNI或進程間駭客的痛苦。

+0

我看過Core-Plot,但他們沒有提供任何文檔。哦,也許它比使用JNI更容易...謝謝。 – simao 2009-10-09 14:34:43

+0

Core Plot網站上的文檔絕對是稀疏的。 xcode項目有一個Doxygen構建目標,但是,它會生成API文檔和示例應用程序,演示大部分(或全部)框架功能,以便至少查看示例代碼。 – 2009-10-09 15:05:58