千家信息网

java打jar包生成exe文件的方法

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,本篇内容介绍了"java打jar包生成exe文件的方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
千家信息网最后更新 2024年11月14日java打jar包生成exe文件的方法

本篇内容介绍了"java打jar包生成exe文件的方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

相关软件:IDEA exe4j

JAVA技术:maven SpringBoot jna

应用环境: windows7/10

MAVEN信息

                               net.java.dev.jna            jna            5.6.0                            org.springframework.boot            spring-boot-starter-web                            org.projectlombok            lombok            1.16.18                                    junit            junit            4.12            test                            org.junit.jupiter            junit-jupiter            RELEASE            compile                            org.springframework.boot            spring-boot-starter-test            test                                                org.junit.vintage                    junit-vintage-engine                                        

先把SpringBoot 项目用 MAVEN打成jar包

@RestControllerpublic class PublicApi {    @RequestMapping("test")    public ApiResponse testApi() {        //DhScalePluNet 为DLL文件名 这是获取相对目录的方式,绝对目录可以自行百度        CLibrary instance= Native.loadLibrary("DhScalePluNet" , CLibrary.class);        int i = instance.dhSendPluDefault();        if(i != 0 ){            ApiResponse result = new ApiResponse<>(ErrorCode.ERROR);            result.setResult(i);            return result;        }        return new ApiResponse<>(ErrorCode.NO_ERROR);    }    @RequestMapping("test")    public ApiResponse testApi() {        String pa = new File(".").getAbsolutePath();        pa = pa.substring(0, pa.length()-1);        pa = pa + "DhScalePluNet";        pa = pa.replaceAll("/", "\\\\");        log.info("全路径: " + pa); //全路径 此路径为exe执行时所在文件路径,应用打包后,dll|ini等文件将与exe文件同级目录        CLibrary instance= Native.loadLibrary(pa , CLibrary.class);        int i = instance.dhSendPluDefault();        if(i != 0 ){            ApiResponse result = new ApiResponse<>(ErrorCode.ERROR);            result.setResult(i);            return result;        }        return new ApiResponse<>(ErrorCode.NO_ERROR);    }}

项目中DLL文件放置的坑,一般情况是读不到DLL的,这个时候需要把DLL文件放到win32-x86目录中才可以读取到.并且我的DLL为32位DLL. 64的还未知.

本地测试通过后用IDEA MAVEN插件打包即可

exe4j详细使用教程:

然后生成EXE文件,你的DLL文件和EXE同目录同级别就可以正常调用了.

"java打jar包生成exe文件的方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0