2013-04-27 47 views
0

我注意到,使用JFreeChart時,程序的大小比標準Java程序大得多(大約1.5 MB)。爲了確認它可能是什麼,我查看了JFreeChart的官方開發者指南,並注意到它的長度超過900頁!這意味着在Java中使用JFreeChart庫就像在C++中使用system()(但更安全)。就像在牆上有一個好的恆溫器時,就像燃燒你的傢俱以獲得熱量。我想知道是否可以從JFreeChart庫中構建一個更小的庫,而不必將所有內容都包含在JFreeChart庫中。換句話說,我是否可以簡單地解壓縮可執行JAR文件,只需要基本折線圖/時間圖所需的東西,並且製作自己的庫?從已有庫中創建庫

+1

你可以很容易地使用像ProGuard這樣的工具去除你不使用的所有東西。 – 2013-04-27 01:45:48

+0

而且,我認爲你也可以指定這個強大的程序扔掉什麼......當我到達我的編碼計算機時,我會嘗試這個! – 2013-04-27 12:29:46

+0

您可以告訴ProGuard保留未使用的對象嗎? //我在程序中使用多態;我有一個啓動整個程序的主類,它的構造函數 – 2013-04-30 17:46:09

回答

1

由於它是開源的,你可以直接獲取源代碼,刪除所有你不想要或者不需要的東西,然後重新編譯/重新編譯成一個新的輕量級jar。在構建它的項目中可能有類似於和ANT build.xml文件,並且您可以自定義它以滿足您的需求。

如果您打算嘗試新的重量更輕的圖表庫,請查看XChart。它是開放源代碼並積極開發。您可以瀏覽源代碼或在Github上分發項目。它沒有JFreeChart的所有功能,但在很多情況下很好。

+0

這需要修改程序使用的所有目標庫中的所有'.class'文件,對吧? – 2013-04-29 17:52:56

+0

我試過將原始JAR庫解壓縮到一個文件夾中,通過文件夾,刪除我沒有導入的所有東西,從剩下的東西(實際上包含的內容)重建JAR,將它轉換爲'newLibrary.jar',然後只是包括這個newLibrary.jar就像我包含原始文件一樣。問題是,它不能識別依賴於這個新庫的任何進口!我可能會做錯什麼?我是否需要修改'.class'文件,以保證安全? – 2013-04-29 19:14:24

+1

你錯了。您需要首先獲取源代碼,該代碼是* .java文件的集合,您可以顯然在此處獲取(http://sourceforge.net/p/jfreechart/code/HEAD/tree/)。然後你需要刪除你不需要的* .java文件。最後你需要編譯這些文件並將它們打包成jar。編譯的文件將具有.class擴展名。這樣做並非微不足道的任務,但它可以完成。 – herrtim 2013-04-29 20:35:55