2016-05-12 3 views
0

私は、このaxis2ベースのWebサービスをaarファイルに入れて、自分自身をantで構築しています。私がビルドするとき、私はjarファイルの場所を指定します。特に "rt.jar"、私はそれを私のlibフォルダの中に置き、javacでクラスを構築します。私のlibフォルダからrt.jarを削除するとjavacがビルドされないので、jarファイルが使用されていることがわかります。Axis webserviceのソースjarロードはどこからですか?

問題は、私のWebサービスをデバッグし、WSBindingProviderクラスが以下のコードを使用してロードされている場所を理解しようとしたときに、c:/ program files/java/jre1.8 /私のプロジェクトのどこにでもjre(jdkではなく)ライブラリを使用しないでください。

ビルドクラスファイルで特定のクラスが使用されているときに、どのように動作するか説明できますか? Axisは何とかそれをjreから取り出しますか?または風邪ですか? rt.jarから

Class klass = WSBindingProvider.class; 
URL location = klass.getResource('/' + klass.getName().replace('.', '/') + ".class"); 

答えて

0

クラスは常にJREとjavacの両方で使用されています。コードがrt.jarをクラスパスに追加した場合にのみコンパイルされる場合は、rt.jarがjavacとは異なるJavaバージョンのものであることを意味します。

+0

これは本当ですが、rt.jarの場所を上書きするのは簡単ではないことがわかりました。答えてくれてありがとう。 – ifuwannaride

関連する問題