ホームページ >Java >&#&チュートリアル >Java アプリケーションで使用するためにサードパーティの JAR ファイルを使用して DLL をパッケージ化するにはどうすればよいですか?
DLL を JAR ファイルにパッケージ化する
対応する 2 つの DLL ファイルが付属するサードパーティ JAR ライブラリを取得しました。 Java アプリケーションはこのライブラリに依存しており、すべてのコンポーネント (コード、サードパーティの JAR、および DLL) を 1 つの便利な JAR ファイルにマージしようとしています。
DLL のパッケージ化
JAR ファイルは、基本的に ZIP アーカイブと同様に機能します。 DLL を JAR に含めるには、その構造内の任意の場所に DLL を配置するだけです。ただし、DLL をパッケージ化するだけでは十分ではありません。これらを使用する前に、JAR から抽出し、ハード ドライブ上の指定された場所に保存する必要があります。
コード例
これは、Java コード ブロックの例です。このプロセスを示します:
// Package the DLLs in the JAR file // ... (your code here) // Extract and load the DLLs from the JAR private static void loadFromJar() { // Determine the temporary directory path String path = "AC_" + new Date().getTime(); // Extract the DLLs and load them into memory loadLib(path, "acwrapper"); loadLib(path, "aamapi51"); loadLib(path, "libeay32"); } // Extract and load a specific DLL private static void loadLib(String path, String name) { InputStream in = Foo.class.getResourceAsStream("/lib-bin/" + name + ".dll"); File fileOut = new File(System.getProperty("java.io.tmpdir") + "/" + path + "/lib-bin/" + name + ".dll"); OutputStream out = FileUtils.openOutputStream(fileOut); IOUtils.copy(in, out); in.close(); out.close(); System.load(fileOut.toString()); }
このコードでは、DLL は「パス」で指定された一時ディレクトリに抽出され、ロードされます。 System.load() を使用してメモリにロードします。特定の JAR 構造と DLL の場所に基づいて、正確なファイル パスとリソース パスを調整する必要がある場合があることに注意してください。
以上がJava アプリケーションで使用するためにサードパーティの JAR ファイルを使用して DLL をパッケージ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。