問題タブ [urlclassloader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaでクラスパスに動的に「追加」することは可能ですか?
上記のコマンドの機能をプログラムで取得するにはどうすればよいですか? 同様に、次のように実行することは可能ですか:
同じ結果が得られますか?URLClassLoader を使用してみましたが、クラスパスが変更され、追加されません。
ありがとう!
Milhouさん、返信ありがとうございます。しかし、それが私がやろうとしていることです.最初にjarをクラスパスに入れるにはどうすればよいですか? 私もカスタムクラスローダーを使ってみました:(
それはうまくいきます..しかし、私はそれを次のように実行する必要があることを残念に思います: java parserTester 私はそのようなことが可能かどうか知りたいですか?
それはそうする必要があるので、私は parserTester.java と .class を別のフォルダーに持っています。ファイル構造を保持する必要があります。parserTester は、別の jar フォルダー内の jar を使用します。
jar - urlclassloader によってロードされた jar ファイルのサイズを取得します
urlclassloader によって動的にロードされるファイルサイズを見つける良い方法を知っている人はいますか?
次の方法で urlclassloader を使用していますが、使用されている帯域幅を追跡する必要があります。
前もって感謝します!
java - 実行時に .jar をロードする: ローダーは動作するが、setContextClassLoader を使用すると動作しない?
「MyClassLoader」という名前の URLClassLoader にいくつかの jar を設定しています。私が試したら
できます。
私が試したら
それも機能します。
でもやってみたら
をスローしClassNotFoundException
ます。
もちろん、Class.forName
これは単なる例です。使用しようとするとMyClass
、同様に例外がスローされます。
これはおそらく、私がどのように機能するのか理解していないことを意味しますsetContextClassLoader
。誰かが私にこれを明確にし、それを理解するのを手伝ってくれませんか?私のコードを機能させるにはどうすればよいですか? ありがとうございました。
java - URLClassLoader + loadClass +スタンドアロンプロセスでmainメソッドを呼び出しますか?Java
次のメソッドを使用して、jarファイル内のクラスを呼び出しています。
別のプロセスでこれを呼び出すことは可能ですか?では、実行中のアプリケーションと新しく呼び出されたアプリケーションに共通点はありませんか?
状況:プログラムa(クライアントアップデーター)を起動します。クライアントaからプログラムb(クライアント)を起動します
現在のコードでは、プロジェクトaとプロジェクトbのすべてのインスタンスが同じヒープスペースを共有します。プロジェクトbのすべてのインスタンスがスタンドアロンであり、プロジェクトAが終了するかどうかを気にしない状態を実現しようとしています。
java - クラスローダーの破棄
URLClassLoaderを拡張するカスタムクラスローダーを使用しています。いくつかのクラスをカスタムクラスローダーにロードし、いくつかのタスクを実行します。タスクが完了したら、クラスローダーを破棄したいと思います。参照をnullに設定して、それを試してみました。
ただし、これはクラスローダーをガベージコレクションしません。
私が達成したいことを助けることができる方法はありますか?
java - .classファイルをURLClassLoaderのurlpathに追加できますか
URLClassLoaderから拡張するカスタムクラスローダーがあります。addURL();を使用して.classファイルをurlpathに追加しました。しかし、このローダーを使用してclass.forname()を実行すると、ClassNotFoundExceptionが発生します。ただし、jarを作成してそのjarをurlpathに追加しても、例外は発生しません。
addURL()を使用して、.classファイルまたはディレクトリを追加できますか?私にはうまくいかないので、誰かがこれを確認できますか?
java - URLClassLoader を使用して jar をリロードする際の問題
アプリケーションの特定の部分について、既存のアプリケーションにプラグイン機能を追加する必要があります。実行時にjarを追加できるようにしたいのですが、アプリケーションはアプリを再起動せずにjarからクラスをロードできる必要があります。ここまでは順調ですね。URLClassLoader を使用していくつかのサンプルをオンラインで見つけましたが、正常に動作します。
また、更新されたバージョンの jar が利用可能になったときに、同じクラスをリロードする機能も必要でした。私は再びいくつかのサンプルを見つけました。私が理解しているように、これを達成するための鍵は、新しいロードごとに新しいクラスローダー インスタンスを使用する必要があるということです。
サンプル コードをいくつか書きましたが、NullPointerException が発生しました。まず、コードをお見せしましょう:
IPlugin は、メソッド doProc を 1 つだけ持つ単純なインターフェイスです。
jartest.TestPlugin は、doProc がいくつかのステートメントを出力するだけのこのインターフェースの実装です。
ここで、jartest.TestPlugin クラスを test.jar という名前の jar にパッケージ化し、C:\plugins の下に配置して、このコードを実行します。最初の反復はスムーズに実行され、クラスは問題なくロードされます。
プログラムがスリープ ステートメントを実行しているときに、C:\plugins\test.jar を同じクラスの更新されたバージョンを含む新しい jar に置き換え、while の次の反復を待ちます。今、ここで私が理解していないものがあります。更新されたクラスが問題なくリロードされる場合があります。つまり、次の反復が正常に実行されます。ただし、例外がスローされることがあります。
私はネットで検索して頭をかきましたが、なぜこの例外がスローされるのか、そしてそれについても結論を出すことはできません-常にではなく、時々だけです.
これを理解するには、あなたの経験と専門知識が必要です。このコードの何が問題になっていますか? 助けてください!!
さらに情報が必要な場合はお知らせください。ご覧いただきありがとうございます。
java - Java Web Start の代替
私たちは、Java Web Start に代わるもので、同じことを効果的に行い、より適切に実装されたものを探しています。私たちはそれで大きな問題を抱えています。XPデスクトップのオフィスがいくつかありますが、すべてわずかに異なり、これまでのところ、深刻な調整なしで機能しているのはほんの一握りです. 問題は、プロキシ設定を適切に操作できないこと (Java コントロール パネルで直接接続を使用すると機能すること)、「-Xmx」などのパラメーターが設定されている場合は実行を拒否するが、設定されていない場合は正常に実行されることです (実行されるまで)メモリ不足) および修正できないその他の奇妙な問題。
Web Start が機能する方法は、まさに私たちが望んでいるものです。つまり、アプリを含むサーバーに接続し、変更されたものをすべてダウンロードし、jar のキャッシュを保持するなどです。ここにいる他のチームは、C# アプリに「clickonce」を使用しています。同じことですが、トラブルが少ないようです。
これに遭遇したのは私たちだけではないと確信していますが、周りを検索しても実際に代替案は示されません. 私たちはスタブ ローカル アプリケーションを作成することを検討しました。これは基本的に、ネットワークを介してオンザフライでアプリをロードする単なる URLClassLoader ですが、残念ながら他のオフィスからは遅すぎます。誰にもアイデアはありますか?
ありがとう
アップデート
最終的に何が起こったのか知りたい人のために、webstart をもう 1 か月ほど与えましたが、引き続き問題が発生したため、独自のバージョンを実装しました。これは基本的に、Web サーバーを指す URL クラス ローダーを持つ単なるスタブです。200 行未満のコードで、数か月間完全に機能しています。理想的ではありませんが、誰かが webstart を改善するまで、私たちはそれを使い続けます。
2018年アップデート
それで、数年後、同じ問題を抱えた新しいプロジェクトに取り組んでいます。今回は独自の webstart 実装を記述する代わりに、 getdown を使用しています。これは Web Start よりも大幅に改善されており、私たちにとって非常にうまく機能しています。
java - 新しいアーカイブ形式をサポートするためにカスタムClassLoaderを作成する必要がありますか?
他のタイプのアーカイブ(tar.gz、tar.bz2 ...)およびサードパーティによって定義されたカスタムタイプからのクラスの読み込みをサポートする必要があります。これを実現するには、「loadClass」メソッドをオーバーライドする必要がありますか?(おそらく、これを行うための別の拡張ポイントがありますか?デフォルトのクラスローダーによって行われるすべてのセキュリティチェックの恩恵を受けたいと思います)。
java - jar ファイル内のクラスの一覧表示
jar ファイルを動的にロードし、その中にあるクラスを一覧表示するにはどうすればよいですか?