2016-10-21 6 views
0

ServiceLoader.load(X.class)を使用していて、展開されるX.classの定義を含む2つのjarファイルがありますか?ServiceLoader load - 最初にロードするクラスを複製しますか?

私が見ている問題は、これがクラスロード順序の点で断続的に見えることです。

これは、定義がわずかに異なるため、問題です。

これはクラスパスに一度しか表示されず、すべての問題を回避するのが理想ですが、中間の時間には何が最初に読み込まれるのかを理解しようとしています。

+1

私の理解として、見つかったすべてのクラスは、クラスパスに現れる順番でロードされます。しかし、APIがこれを特定していないので、それは不確実です。それが本当であっても、それは後のJavaバージョンで変更される可能性があります。 –

+0

インタフェースのサービスローダ定義ファイルがCLASSPATHに表示される順序によって異なります。 – EJP

答えて

0

これは、Javaのバージョン、アプリケーションサーバーの種類とバージョン、おそらくファイルシステムの設定にもよりますが、他に何が分かっているかによって異なります。 注文に関する保証はなく、決して頼りにしてはならないものだと言えば十分です。

関連する問題