You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何制作无需第三方库的简单自解压Jar安装包

实现方案

本方案完全基于JDK原生API开发,无需引入任何第三方依赖,兼容Java 8及以上所有版本,可跨Windows、Linux、macOS平台运行。

核心逻辑

  1. 通过System.getProperty("java.io.tmpdir")直接获取系统默认临时目录路径,无需手动适配不同操作系统
  2. 用当前类的类加载器读取Jar包内的内置资源流
  3. 基于字节流拷贝将资源写入临时目录指定路径

完整可运行代码

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class ResourceExtractor {
    public static void main(String[] args) {
        // 配置需要提取的内置文件名(需和Jar内资源路径完全一致)
        String[] targetFiles = {"cert.pem", "cloudflare.exe"};
        // 获取系统临时目录
        String tempDir = System.getProperty("java.io.tmpdir");

        for (String fileName : targetFiles) {
            // 自动释放IO流,避免资源泄漏
            try (InputStream resourceStream = ResourceExtractor.class.getClassLoader().getResourceAsStream(fileName);
                 FileOutputStream outputStream = new FileOutputStream(new File(tempDir, fileName))) {

                if (resourceStream == null) {
                    System.err.printf("资源文件%s不存在于Jar包内,请检查打包配置%n", fileName);
                    continue;
                }

                // 字节流拷贝
                byte[] buffer = new byte[4096];
                int readLen;
                while ((readLen = resourceStream.read(buffer)) != -1) {
                    outputStream.write(buffer, 0, readLen);
                }
                System.out.printf("文件已成功提取至:%s%n", new File(tempDir, fileName).getAbsolutePath());

            } catch (IOException e) {
                System.err.printf("提取文件%s失败:%s%n", fileName, e.getMessage());
            }
        }
    }
}

打包配置说明

  1. 将cert.pem和cloudflare.exe放到项目的资源目录下(Maven项目对应src/main/resources,普通Java项目对应源码根目录),确保打包后两个文件处于Jar包根目录,结构参考下图:
    Jar文件内容示意图
  2. 打包Jar时指定主类为ResourceExtractor,即可直接通过java -jar 你的Jar包名.jar运行,运行后两个文件会自动释放到系统临时目录。

注意事项

  • 若不需要覆盖临时目录下的同名文件,可在写入前调用new File(tempDir, fileName).exists()判断后再执行写入逻辑
  • 部分Windows系统的临时目录需要管理员权限才可写入,遇到权限报错时可右键选择以管理员身份运行Jar包

内容的提问来源于stack exchange,提问作者Damca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:24:03