2023.5.13>>Eclipse+exe4j打包Java项目及获取exe所在文件的路径

news/2024/11/24 1:33:43/

Eclipse+exe4j打包Java项目及获取exe所在文件的路径

  • 1、打包exe文件
    • 1.1 打jar包
    • 1.2 打包exe
    • 2、在程序中获取exe所在路径
    • 3、遇到问题
    • 4、JDK version和class file version(Class编译版本号)对应关系
    • 5、参考文章

1、打包exe文件

1.1 打jar包

右单击项目选择“Export…
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 打包exe

新建文件夹,将jdk程序中用到的文件1.1中获得的jar包放在一起,,若引用了第三方包,也复制过来。
在这里插入图片描述
使用exe4j打包exe文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果有第三方包,则第三方Jar也要引用到这个ClassPath中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一路Next
在这里插入图片描述
此时exe文件已经生成,直接exit即可。

2、在程序中获取exe所在路径

在1.2中,设置了 VM Parameters中:-Dexe.path=${EXE4J_EXEDIR}
可以用他在程序中找到exe所在目录,这样无论生成的exe放到哪都可以找到当前目录,用法(String exePath = System.getProperty(“exe.path”);)

3、遇到问题

... Java Runtime (class file version 60.0), this version of the Java Runtime only recognizes class file versions up to 50

问题就处在Configure JRE时,填写的minimum version的值小了。改正为当前项目使用的JDK16,而在打包的exe中所用的JDK时JDK20

4、JDK version和class file version(Class编译版本号)对应关系

JDK 19 = 63,
JDK 18 = 62,
JDK 17 = 61,
JDK 16 = 60,
JDK 15 = 59,
JDK 14 = 58,
JDK 13 = 57,
JDK 12 = 56,
JDK 11 = 55,
JDK 10 = 54,
JDK 9 = 53,
JDK 8 = 52,
JDK 7 = 51,
JDK 6.0 = 50,
JDK 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45.0-45.6

5、参考文章

https://blog.csdn.net/sinat_27316899/article/details/71984113
https://blog.csdn.net/lzhfdxhxm/article/details/117018384


http://www.ppmy.cn/news/68541.html

相关文章

7.序列化Serializable

什么是序列化? 将数据结构或者对象转换成二进制串的过程 序列化的方案有哪些? Serializable (java) Externaliable (下面两个方法在读写的属性时需要成双成对使用,不能在不写属性的情况下去读这个属性;并且读写的顺序都必须保持一致;并且还要由一个无参的构造函数) writeExt…

力扣算题Day20

98.验证二叉搜索树(了解二叉树的性质,才是编写此道题代码的基础) 做题伤着了:这道题我做的时候,看到别人写的代码很长,懒得看,直接干。自己编写代码,没有了解平衡二叉树的性质,然后出现了下图[0,-1]、[0]的…

玩转Google开源C++单元测试框架Google Test系列(gtest)之三 - 事件机制

一、前言 gtest提供了多种事件机制,非常方便我们在案例之前或之后做一些操作。总结一下gtest的事件一共有3种: 1. 全局的,所有案例执行前后。 2. TestSuite级别的,在某一批案例中第一个案例前,最后一个案例执行后。…

cmake学习笔记

单文件入门 基本函数 PROJECT(projectname [CXX] [C] [Java]) SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]]) MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] “message to display” …) ADD_EXECUTABLE([BINARY] [SOURCE_LIST]) 例子 文件结构如下: // ma…

​当互联网与产业的融合成为一种必然,​平台化和商业化不再是必然

当互联网与产业的融合成为一种必然,我们在互联网时代司空见惯的平台化、中心化的发展模式便开始被瓦解。更为确切地说,经典意义上的平台化和中心化的商业模式不再有存在的必要。因为供求两端的对接不再是依靠平台和中心的撮合和中介来实现的,…

第二十七回:如何给PageView添加指示器

文章目录 概念介绍添加方法示例代码指示器联动 我们在前面章回中介绍了PageView这个Widget,本章回中将介绍 如何给PageView添加指示器.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里说的指示器表示PageView底部的小圆圈,它用来指示当前哪个…

Spring Cloud: 云原生微服务实践

文章目录 1. Spring Cloud 简介2. Spring Cloud Eureka:服务注册与发现在Spring Cloud中使用Eureka 3. Spring Cloud Config:分布式配置中心在Spring Cloud中使用Config 4. Spring Cloud Hystrix:熔断器在Spring Cloud中使用Hystrix 5. Sprin…

Azkaban学习——单机版安装与部署

目录 1.解压改名 2.修改装有mysql的虚拟机的my.cnf文件 3.重启装有mysql的虚拟机 4.Datagrip创建azkaban数据库,执行脚本文件 5.修改/opt/soft/azkaban-exec/conf/azkaban.properties文件 6.修改commonprivate.properties 7.传入mysql-connector-java-8.0.29…