我注意到,使用JFreeChart時,程序的大小比標準Java程序大得多(大約1.5 MB)。爲了確認它可能是什麼,我查看了JFreeChart的官方開發者指南,並注意到它的長度超過900頁!這意味着在Java中使用JFreeChart庫就像在C++中使用system()
(但更安全)。就像在牆上有一個好的恆溫器時,就像燃燒你的傢俱以獲得熱量。我想知道是否可以從JFreeChart庫中構建一個更小的庫,而不必將所有內容都包含在JFreeChart庫中。換句話說,我是否可以簡單地解壓縮可執行JAR文件,只需要基本折線圖/時間圖所需的東西,並且製作自己的庫?從已有庫中創建庫
從已有庫中創建庫
回答
由於它是開源的,你可以直接獲取源代碼,刪除所有你不想要或者不需要的東西,然後重新編譯/重新編譯成一個新的輕量級jar。在構建它的項目中可能有類似於和ANT
build.xml文件,並且您可以自定義它以滿足您的需求。
如果您打算嘗試新的重量更輕的圖表庫,請查看XChart。它是開放源代碼並積極開發。您可以瀏覽源代碼或在Github上分發項目。它沒有JFreeChart的所有功能,但在很多情況下很好。
這需要修改程序使用的所有目標庫中的所有'.class'文件,對吧? – 2013-04-29 17:52:56
我試過將原始JAR庫解壓縮到一個文件夾中,通過文件夾,刪除我沒有導入的所有東西,從剩下的東西(實際上包含的內容)重建JAR,將它轉換爲'newLibrary.jar',然後只是包括這個newLibrary.jar就像我包含原始文件一樣。問題是,它不能識別依賴於這個新庫的任何進口!我可能會做錯什麼?我是否需要修改'.class'文件,以保證安全? – 2013-04-29 19:14:24
你錯了。您需要首先獲取源代碼,該代碼是* .java文件的集合,您可以顯然在此處獲取(http://sourceforge.net/p/jfreechart/code/HEAD/tree/)。然後你需要刪除你不需要的* .java文件。最後你需要編譯這些文件並將它們打包成jar。編譯的文件將具有.class擴展名。這樣做並非微不足道的任務,但它可以完成。 – herrtim 2013-04-29 20:35:55
- 1. 使用現有的從庫中OSGi包創建的庫拉
- 2. 從已修改的數據庫字段中創建URL
- 3. 從已創建的庫中獲取響應
- 4. Migrator.Net - 從現有數據庫創建
- 5. 如何從iOS中已有的源代碼創建靜態庫或框架
- 6. 從數據庫創建URL
- 7. 從ios庫創建DLL
- 8. 從C++創建共享庫
- 9. 從數據庫創建Excel
- 10. 從C++庫創建Python包
- 11. 如何從boost創建庫?
- 12. 從現有的Github倉庫創建一個新的Github倉庫
- 13. 從現有數據庫創建數據庫表正在進行
- 14. cakephp創建從數據庫中選擇
- 15. 創建庫PHP
- 16. SAPUI5創建庫
- 17. 創建庫
- 18. Zend框架 - 從數據庫中創建數據庫表 - 錯誤
- 19. 如何從多個靜態庫中創建一個靜態庫?
- 20. 如何在已經有(搞砸了)現有git存儲庫的目錄中創建「全新的存儲庫」?
- 21. 如何創建中間庫?
- 22. 在asp.net中創建類庫
- 23. 在j2me中創建庫
- 24. 在Simulink中創建庫
- 25. 從數據庫中的所有行創建xml
- 26. 從sqlite中的現有表創建數據庫
- 27. 從SQLite中的現有數據庫創建腳本3
- 28. 從庫中創建一個沒有任何新代碼的DLL
- 29. 如何從iOS中的現有框架創建靜態庫?
- 30. 在C/C++中創建已包裝庫的Python對象?
你可以很容易地使用像ProGuard這樣的工具去除你不使用的所有東西。 – 2013-04-27 01:45:48
而且,我認爲你也可以指定這個強大的程序扔掉什麼......當我到達我的編碼計算機時,我會嘗試這個! – 2013-04-27 12:29:46
您可以告訴ProGuard保留未使用的對象嗎? //我在程序中使用多態;我有一個啓動整個程序的主類,它的構造函數 – 2013-04-30 17:46:09