2

java util、、およびパッケージのみを保持しio、およびその他のパッケージを JDK からすべて削除したいと考えています。niomathjava.sql

どうすれば削除できますか?

  • したがって、削除されたパッケージをインポートするプログラムを作成すると、パッケージが存在しないというエラーが発生します。
4

3 に答える 3

2

JDK をハッキングする代わりに SecurityManager を使用する

于 2013-03-10T15:35:17.477 に答える
2

できる限りの回答を差し上げます。

本当にやりたいことをやってはいけない理由


コードを書いているときは、拡張可能な方法でそのコードを開発することが一般的に合意されています。つまり、コードを他のアプリケーションにプラグインしたり、非常に簡単に変更および追加したりできます。この原則を念頭に置いて、プログラムの可能な機能を削除するとどうなるかを確認しましょう。たとえば、SQL パッケージを削除して、将来、バックエンド データベースでプログラムにある程度の永続性を提供したいとします。あなたはめちゃくちゃです。

Java の考え方は、Java の主な利点は、パターンの共通性、一貫性、および標準化です。ゲッターは常にゲッターです。変数 (定数ではない) は小文字で始まります。クラスには、構造化の標準化された方法があります。これらすべてにより、Java での開発は非常に直感的になります。

JDK はその一貫性の一部であり、それを編集することは、Java の主要なポイントの 1 つに実際に影響を与えることです。プログラムを別のよりコンパクトな言語で実装したいようです。

最後に、クライアントがあなたのプロジェクトを将来どのように拡張したいのかわかりません。クライアントから反復可能なビジネスを獲得し、同時に良い評判を生み出したい場合は、優れた設計プラクティスを念頭に置いてコードを設計する必要があります。

于 2013-03-10T15:35:43.983 に答える
0
  1. そのようなツールはありません、AFAIK。
  2. Javaライブラリから何かを削除することは、技術的に難しい場合があります。'コードが直接または間接的にクラスまたはメソッドを使用しているかどうかを知るのは難しい場合があります。
  3. JREインストーラーからクラスを追加または削除し、それを他の人に出荷すると、「ライセンスの問題」が発生する可能性があります。

提案されたユースケースについて。

  1. これをWebアプリケーションとして構築している場合、不要なクラスを切り出すのは非常に困難になります。典型的なwebappサーバー側フレームワークは、多くのJavaSEインターフェースを使用します。
  2. あなたがあなたのサービスを試して停止したい誰かを受け入れてコードを実行した場合、彼らはObjectクラスだけを使用せずにそれを行うことができます。(ヒント:無限ループとヒープの充填。)サーバーで信頼できないコードを実行することはお勧めできません。限目。
  3. サーバー上で正当なコードを実行しようとしている人の影響について考えてみてください。なぜ彼らはライブラリクラス/メソッドの使用を許可されるべきではないのですか?(「通常の」ライブラリクラスを使用できなかった場合は、確かに少し不安になります...)

私のアドバイスは、そのようなサービスを実装するのが良い考えであるかどうかを再考することです...リスクと、セーフガードが効果的でない場合に起こりうる困難を考えると。続行する場合は、セキュリティボックス内のJVM内で信頼できないコードを実行することをお勧めします。Javaのセキュリティが侵害された場合の防御の第2レベルとして、問題が発生した場合にオフにできる分離された仮想マシンでサービスを「chroot」またはそれ以上で実行することをお勧めします。

于 2013-03-10T15:39:41.187 に答える