首頁 > Java > java教程 > 如何將具有第三方 JAR 檔案和 DLL 依賴項的 Java 應用程式打包到單一 JAR 中?

如何將具有第三方 JAR 檔案和 DLL 依賴項的 Java 應用程式打包到單一 JAR 中?

Susan Sarandon
發布: 2024-11-24 09:20:10
原創
344 人瀏覽過

How Can I Package a Java Application with Third-Party JAR Files and DLL Dependencies into a Single JAR?

使用DLL 依賴項打包第三方JAR 檔案

問:我有一個Java 函式庫,需要兩個DLL 檔案和我自己的Java 程式使用這個函式庫。如何將所有元件組合到一個包含我的程式碼、第三方 JAR 和 DLL 的 JAR 檔案中?

A:要建立包含DLL 依賴項的JAR 檔案:

  • 打包DLL: 將DLL 檔案包含在JAR 中的任意位置
  • 提取DLL:
在使用DLL 之前,將它們從JAR中提取到硬碟上的指定位置。這對於進一步處理至關重要。

import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

public class ExtractDLLs {

    public static void main(String[] args) {
        String jarPath = "path/to/my.jar";
        String outputDirectory = "path/to/output";

        try (ZipFile jarFile = new ZipFile(jarPath)) {
            Enumeration<? extends ZipEntry> entries = jarFile.entries();

            while (entries.hasMoreElements()) {
                ZipEntry entry = entries.nextElement();

                if (entry.isDirectory()) {
                    continue;
                }

                if (entry.getName().endsWith(".dll")) {
                    InputStream in = jarFile.getInputStream(entry);
                    OutputStream out = new FileOutputStream(new File(outputDirectory, entry.getName()));

                    byte[] buffer = new byte[1024];
                    int len;
                    while ((len = in.read(buffer)) > 0) {
                        out.write(buffer, 0, len);
                    }

                    in.close();
                    out.close();
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
登入後複製
在打包領域,DLL 和其他檔案的處理方式與 ZIP 檔案中的檔案類似。您可以使用以下 Java 程式碼從 JAR 中提取 DLL:

請記住,將 DLL 或其他檔案打包到 JAR 中就像將檔案打包到 ZIP 檔案中一樣簡單。提供的程式碼演示利用 ZIP 檔案結構從 JAR 中提取 DLL。

以上是如何將具有第三方 JAR 檔案和 DLL 依賴項的 Java 應用程式打包到單一 JAR 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板