2

クライアントサーバーアプリケーションを構築しています。実行時に、クライアント アプリケーションはサーバー アプリケーションから jar ファイルをロードして保存します。クライアントとサーバー アプリケーションの両方を jar ファイルとして実行します。このダウンロードした jar ファイルに含まれるクラスをロードしたいと思います。

たとえば、インターフェイス A と A を実装するクラス B があります。クライアント アプリケーションは、クラス B、その名前、さらにはその存在について知りません。クライアント アプリケーションの起動後、クライアント アプリケーションは次のコンテンツを含む jar ファイルを含む jar ファイルをダウンロードします: server/package/B.class ここで、server と package はフォルダーです。

クライアント アプリケーションは、次のコードを使用して、ダウンロードした jar ファイルからこのクラス B をロードする必要があります。

URL downloadURL = downloadFolder.toURI().toURL();
URL[] downloadURLs = new URL[] { ruleSetFolderURL };
URLClassLoader loader =
    new URLClassLoader(downloadURLs);
Class tmp = loadClass(server.package.B);

しかし、その後ClassNotFoundException、最後の行に a が表示されます。最初にjarファイルを抽出する必要がありますか? jar ファイルのフォルダー構造は、サーバー アプリケーションの bin ディレクトリのフォルダー構造に似ています。

4

2 に答える 2