私はシステムプロキシ検出にいくつかの迷惑な問題があります。 実際には、実行時にシステムプロキシ設定を検出する正しいコードを持っています。 ターゲットステーションのすべてを保存して実行すると、それは絶対に正しく機能します。システムプロキシ設定の検出に失敗しました。
しかし、私はターゲットステーションでコードを少し実行して、他のステーション(ApacheのWebサーバーが動作する)に他のもの(jars)を保存します。メインから、URLClassloaderでクラスをロードします。そのため、コードをネットワーク経由でロードし、プロキシの検出も行います。このように、デフォルトのプロキシセレクタは常にDIRECTを与え、正しい設定を見つけることができません。
私が思うには、問題は、私はロードされたクラスでは
System.setProperty("java.net.useSystemProxies","true");
を設定したいということで、何とかこれは動作しません...しかし、私はプロパティ値をSYSOUTとき、それはtrue
です。
私は少しテストプログラムを書いたとの唯一の違いは、その次のとおりです。
A)
Class.forname("a"); -> a is in the classpath
B)
URL[] url = new URL[1];
url[0] = new URL("http://1.2.3.4/dtfw");
URLClassloader u = new URLClassloader(url);
Class.forname("a", true, u);
どちらのコードも機能しますが、出力には唯一の違いがあります。 誰かに考えがありますか?
ありがとうございます!
Zsomi