2013-03-10 49 views
1

移除Java包只保留java utilioniomath套票,並希望從我的JDK刪除所有其他包一樣java.sql等。我如何從JDK

我該如何刪除它們?

  • 所以,如果我寫一些程序,其中導入刪除包,它會給 錯誤包不存在。
+6

爲什麼?爲什麼? **爲什麼?** – 2013-03-10 15:29:22

+0

:)是的,爲什麼?如果你想盡量減少內存佔用,你可能需要考慮其他語言!我要去從JDK中刪除東西,看看會發生什麼。 – Will 2013-03-10 15:30:09

+0

這與內存佔用無關。這些類生活在JRE中 - 它們不是程序的一部分,如果不使用它們,則不加載。 – 2013-03-10 15:31:19

回答

0
  1. 有沒有這樣的工具,AFAIK。
  2. 從Java庫中刪除東西在技術上可能會非常棘手,因爲可能很難知道您的代碼是否可能直接或間接使用某些類或方法。
  3. 如果您從JRE安裝程序添加或刪除類並將其發送給其他人,則存在潛在的「許可問題」。

關於你提出的使用情況。

  1. 如果您正在構建這個作爲一個Web應用程序,那麼你將會有很多困難切割出不需要的類。一個典型的webapp服務器端框架使用了很多Java SE接口。
  2. 如果你接受並運行代碼的人想要嘗試並降低你的服務,他們可以做到這一點,而不使用Object類。 (提示:無限循環並填充堆。)在你的服務器上運行不受信任的代碼是一個壞主意。期。
  3. 想想有人試圖在服務器上運行合法代碼的後果。爲什麼他們不應該被允許使用庫類/方法? (我肯定會有點生氣,如果我不能用「普通」庫類...)

我的建議是重新考慮,如果它是實現這樣的服務在所有的好想法..考慮到風險以及如果你的安全措施無效,你可能會遇到的困難。如果您決定繼續,我建議在安全框中在JVM中運行不受信任的代碼。作爲第二級防禦,如果Java安全性受到影響,我建議將該服務「chrooted」或更好地運行在隔離的虛擬機中,如果遇到問題可以關閉該虛擬機。

2

使用安全管理器,而不是黑客的JDK

3

,我去給你最好的答案我可以。

爲什麼你真的不應該做你想做的事


當你寫的代碼,它通常同意發展的方式,是可擴展的代碼是什麼。也就是說,您的代碼可以插入其他應用程序,或者可以很容易地更改和添加。現在考慮到這個原則,讓我們來回顧一下當你刪除程序的可能功能時會發生什麼。假設你刪除了SQL包,並且將來你需要一個後端數據庫來爲你的程序提供一些持久性。你完蛋了。

Java的想法,實際上我會盡可能說Java的主要優點,它是模式的通用性,一致性和標準化。吸氣劑總是吸氣劑。變量(不是常量)以小寫字母開頭。類具有結構化的標準化方式。所有這些使Java開發非常直觀。

JDK是該一致性的一部分,編輯它將真正影響Java的一個主要觀點。這聽起來像是你想用另一種更緊湊的語言來實現你的程序。

最後,你不知道客戶如何在未來擴展你的項目。如果你想從客戶那裏獲得一些可重複的業務,並且同時產生良好的聲譽,那麼你需要考慮設計好你的代碼。