標準ライブラリを変更したり、独自のライブラリを個人用に置き換えることはできますが、Oracle はこれをサポートしておらず、変更したバージョンを他の人に配布することを許可していません。クラスを検索する場所を JVM に指示するためのさまざまなコマンドラインおよび構成オプションがあります。ブートストラップ クラスを置き換えるのは難しいですが、可能です。
完全にゼロから独自のバージョンを作成するのは難しいことに注意してください。これは、いくつかのクラス (Object
およびClass
少なくとも) が必然的に JVM 実装に非常に強く結び付けられているためです。簡単にするために、ネイティブ コードを使用するすべてのクラスを同じにしておくことをお勧めします。
これはクラス シャドウイングとは異なることに注意してください。これは純粋にコンパイル時の概念であり、通常はインポートが原因で複数の識別子が競合する場合に発生します (java.lang.*
は暗黙的にインポートされ、それについては何もできません)。これらの競合は、通常、状況に応じていずれかの可能性を黙って使用するか、コンパイル エラーを発生させることによって解決されます (詳細については、JLS を参照してください)。