1

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

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

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

TIA、アダム

4

2 に答える 2

1

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

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

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

アダム

于 2009-10-21T14:06:17.313 に答える
0

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

つまり、MyClass.class MyJar.jar

あなたがする必要があります:

java -classpath . -jar MyJar.jar

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

于 2009-10-21T13:22:03.747 に答える