4

一部のクラスをオープン jdk から変更しようとしているので、オープン jdk クラスと同じパッケージ構造を作成し、netbeans を使用してクラスを変更しています。上書きされたクラスに何か問題がある場合、プロジェクトをビルドしているときにエラーが発生します。プロジェクトが正常にビルドされた場合、クラスからの変更がアプリケーションによって考慮されていないように見えます。代わりに、オープン jdk クラスが使用されます。openjdk のクラスではなく、自分のクラスをどのように使用できますか?

例:

プロジェクトでクラスsun.net.www.protocol.https.HttpsURLConnectionImplを作成し、それにいくつかの変更を加えた場合、プロジェクトをビルドしますが、アプリケーションを実行すると、openjdk の元のクラスのように変更が反映されません。私のクラスではなく、使用されています。

4

4 に答える 4

6

詳細については、ブートストラップ クラスパス java -X を変更する必要があります。これはまさに必要なオプションです。

-Xbootclasspath/p:

ソースをハッキングして頑張ってください!!

于 2011-01-29T19:44:25.517 に答える
2

これが拡張クラスの目的です。

詳細については、 http://download.oracle.com/javase/1.5.0/docs/tooldocs/findingclasses.html#javalauncherを参照してください。基本的には、jar を ext フォルダーにドロップするか、標準の Java クラスをオーバーライドするクラスパスの前に必要なものをシステム プロパティで指定します。

于 2011-01-29T17:35:10.457 に答える
0

独自のパッケージでクラスを作成し、このクラスを使用するアプリケーションに代わりにクラスをインポートさせる必要があります。したがって、パッケージ com.yourdomain に HttpsURLConnectionImpl というクラスを作成できます。

次に、アプリケーション コードで以下をインポートするようにします。

  import com.yourdomain.HttpsURLConnectionImpl;

次に、コードで独自のクラスが使用されます。

于 2011-01-29T17:36:07.473 に答える