ホームページ  >  記事  >  Java  >  Javaでリソースを見つける方法

Javaでリソースを見つける方法

coldplay.xixi
coldplay.xixiオリジナル
2020-08-17 13:25:002473ブラウズ

Java でリソースを検索する方法: 1. [Class.getResource()] を通じてクラスパス内のリソースを検索します; 2. [ClassLoader.getResource()] を通じてパッケージのルート ディレクトリ内のリソースを検索します。

Javaでリソースを見つける方法

[関連する学習の推奨事項: Java 基本チュートリアル]

Java でリソースを見つける方法:

1、Class.getResource() を通じて クラスパス (bin/com/bbebfe/icons/sample.gif) でリソースを見つけます

Class clazz = this.getClass();
URL url = clazz.getResource(imageName);

2、 ClassLoader.getResource() 経由 ClassLoader.findResource() 経由で提供される、パッケージのルート ディレクトリ (bin/icons/sample.gif)

Class clazz = this.getClass();
URLClassLoader loader = (URLClassLoader)clazz.getClassLoader();
URL url = loader.getResource(imageName);

3 でリソースを見つけます。 独自にカスタマイズした方法でリソースを見つける

URL url = loader.findResource(imageName);

では、これら 3 つの方法の違いは何ですか?また、いつどの方法を使用する必要がありますか?

1.

Class.getResource()Method

このメソッドは、実際には、クラスのクラス ローダーの getResource() メソッドを通じてリソースを取得します。 ClassLoader、クラス .getResource() メソッドは、リソース名に対して特定の処理を実行し、リソースの絶対名を構築します。これは、次のことを意味します。

+ リソース名が '/'('/ で始まる場合u002f') の場合、リソースの絶対名は '/' 以降の部分です。

imageName が "/icons/sample.gif" の場合、ここでは "icons/sample.gif" になります。それ以外の場合は、他の場合、絶対名は次の形式になります (リソース名の前にmodified_pa​​ckage_name/を付けます):

modified_pa​​ckage_name/resource_name

(変更されたパッケージ名/リソース名)

パッケージ名の正しい意味は、現在のオブジェクトのパッケージ名の '.'('/u002e') を '/'に置き換えることです。

ClassLoader.getResource() メソッドが返った場合URL が null の場合、Class.getResource() メソッドは最終的にリソース要求を

ClassLoader.getSystemResource(java.lang.String)

.

2, ClassLoader に渡します。 .getResource( )

メソッド

これはリソースを検索します。リソースの名前は「/」で区切られたパスです。このメソッドは最初に自身の親 ClassLoader を検索し、次に自身の親を検索します。 ClassLoader はリソースを検索します (実際には、親の親が null でない場合でも、親は上向きに検索リクエストを送信します)。自分の親 ClassLoader が null の場合は、Java 仮想マシンに組み込まれているクラス ローダーを検索して送信します。これらの操作が失敗した場合、ClassLoader は独自の findResource() メソッドを呼び出してリソースを検索します。

3、

ClassLoader.findResource()

Method

このメソッドは、指定されたリソースを内部的に検索します。独自のクラス ローダーを実装する場合は、このメソッドをオーバーライドして、独自の方法でクラス ファイルとリソースを検索する必要があります。

関連学習の推奨事項:

プログラミングビデオ

以上がJavaでリソースを見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。