問題タブ [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が得意ではないので、本当に簡単なことを見落としているかもしれません...
私はプラグイン システムに取り組んでおり、すべてが Eclipse で完全に正常に動作しますが、実際にその外部でアプレットを起動すると動作しません。
ディレクトリからファイルを読み込んで実行しようとしてい.class
ますが、うまくいかない理由はわかっていますが、どうすれば解決できるのかわかりません。
問題は、Eclipse がクラスパスでアプレット自体を参照しているが、Eclipse の外部のクラスパスで参照されておらず、-cp
または-classpath
にアクセスできないことです。固定クラスパスを持つ jar。
この問題をどのように解決できるかについてのアイデアはありますか?
ローダー コード:
プラグイン コード:
この問題は、私を 1 週間前から追い詰めており、どうすればよいかわかりません。:/
classloader - Glassfish 3.1 でカスタム ハンドラを使用して NoClassDefFoundError を取得する
問題
- 私たちの Web アプリは、コンストラクター
java.net.URL
に a のカスタム実装を渡すことを作成しURLStreamHandler
ます。 - その URL で、 を呼び出します
url.openConnection()
。 java.net.URL
コードはハンドラーを呼び出しますopenConnection()
。- この時点で
NoClassDefFoundError
、ハンドラーが使用するクラスの を取得します。
これは Glassfish 3.1 で発生しますが、Tomcat、WebLogic、および JBoss では発生しません。(また、Glassfish の古いバージョンでも動作していました。)
私が試したこと
glassfish-web.xml
Glassfish に最初に Web アプリからクラスをロードするように (予想どおり) を追加しようとしましたが、これで問題は解決しません。
この問題を解決するにはどうすればよいですか? また、なぜこの問題が発生するのですか?
java - 実行時に JAR ファイル クラスをロードするときのエラー
JAR ファイルをクラス パスに追加し、実行時に JAR ファイルからすべてのクラスをロードしようとしています。これが私がこのタスクのために書いたコードです (このクラスは URLClassLoader を拡張します)
しかし、getURLs を使用しても、クラス エンティティに対して ClassNotFoundException を取得し続けますが、jar ファイルがこのローダーに追加されたことを示しています。
この問題の原因は何ですか? ありがとう
java - UrlClassLoader を使用してクラスをロードできないようです
そこで、非常にシンプルなファイルを作成し、次のサーバーにアップロードしました。
そこには、testApp.jar と bin として機能するフォルダーがあります。これを修正するためにいくつかのことを試みましたが、取得し続けます: Exception in thread "main" java.lang.ClassNotFoundException: com.testApp.Main
これを見つけるための私のコードは
私の最終目標は、単にこのファイルのメイン メソッドを実行することであり、起動されるファイルには単純な「Hello World」スイング ウィンドウが表示されます。
ありがとう
java - Java プログラムが自分自身を自動更新できるようにする小さなクラス
目標は、単純な Java クラスで jar メインクラスを開始することです。メインクラスが終了したら、リロードするかどうかを問い合わせることができます。この方法により、自分自身をホット アップデートし、自分自身を再実行できます。
ランチャーは、URLClassloader を介して jar をロードし、変更された jar をアンロード/再ロードします。jar は、Launcher に変更を加えることによって、または新しい jar を古い jar の代わりに交換するために呼び出される提供された dos/unix スクリプトによって変更できます。
プログラム全体は以下。テスト済みで、問題なく動作しているようです。
Java Launcher -jar [path_to_jar] -run [yourbatchfile] [-runonce]? オプション]
1) ランチャーは、実行する実際のクラスを指定する必要がないように、jar ファイル内の「Main-Class」属性を探します。
2) 'public static void main(String[] args)' を呼び出し、コマンド ラインで指定した残りの引数を渡します。
3) プログラムが終了すると、ランチャーはプログラム メソッド 'public static boolean reload()' を呼び出し、結果が 'true' の場合はリロードをトリガーします。
4) -runonce を指定した場合、プログラムは再ロードされません。
5) -run [batchfile] を指定した場合、リロードする前にバッチファイルが実行されます。
これが一部の人々に役立つことを願っています。
ハッピーコーディング!
java - jarを動的にロードする
私のJavaアプリケーションでは、jarファイル(Mavenシェードプラグインにパッケージ化されている)をバイトストリームに読み込みます。jarには、で定義されたエントリポイントクラスがあります。POM.xml
そのようなクラスをJavaアプリに動的にロードするにはどうすればよいですか?
アップデート:
- jarはバイトストリームとしてロードされ、ファイルシステムまたはURLに存在しません
java - クラスパスを動的に変更する
/home/nameuser/.myProject/conf
実行時に構成ファイルをクラスパスに追加したいと考えています。
使用してみURLClassLoader
ましたが、成功しませんでした。
また
java - Java URLClassLoaderが文字列を認識しない
私は本当に奇妙な問題を抱えています。
URLClassLoader を使用して、ディレクトリからファイルを動的にインポートしています。リテラル文字列を使用するとコードは正常に動作し、変数をリテラル文字列に使用すると正常に動作しますが、これは必要なものではありません。
私が必要とするのは、これを行うことができることです:
しかし、「名前」は有効な文字列であり、「TestClass」と等しいにもかかわらず、機能しません。
編集: エラーが表示されます:
どうしたの?
java - Linux で URLClassLoader が依存関係をロードできない
クラスのロードに URLClassLoader を使用しています。
私が渡すファイルの名前は正常にロードされますが、それが参照するクラスの場合、 NoClassDefFoundError がスローされます。両方のクラスは、異なる jar ファイルの一部です。
さらに奇妙なことは、同じコードが Windows では正常に動作しているのに、Linux ではエラーがスローされていることです。
私が使用しているコードは次のとおりです。
ABMyClass1としてロードするクラスを渡すと、正常にロードされますが、別のjarファイルにあるABMyClass2のロードに失敗します。