質問

特定のインターフェイスに準拠するJavaクラスを介して拡張可能なアプリケーションがあります。 コマンドラインクラスからプログラムを実行すると、次を使用してアドオンクラスをインスタンス化できます。

Class.forName("myAddon").newInstance();

ただし、アプリケーションをjar(メインクラスを正しく設定)すると、クラスが見つからないという例外が発生します。誰もがここで何が起こっているのかについていくつかの光を当てることができますか?

TIA、 アダム

役に立ちましたか?

解決

次のように検索パスを現在のディレクトリに指定して、URLClassLoaderを使用してこれを機能させることができました。

URLClassLoader cl = new URLClassLoader(new URL[] {new File(".").toURI().toURL()});

ご協力ありがとうございます

アダム

他のヒント

探しているクラスはクラスパス上にありません。ディレクトリにある場合

i.e。 MyClass.class MyJar.jar

する必要があります:

java -classpath . -jar MyJar.jar

しかし、本当に質問に答えるためにはもっと情報が必要です。 jarマニフェストで設定されるメインクラスは何ですか?あなたのクラスパスは何ですか?ロードするクラスをどのように指定しますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top