首页 > 编程语言 >install4j打包多平台java安装包(含JNI)

install4j打包多平台java安装包(含JNI)

时间:2023-08-03 20:23:18浏览次数:34  
标签:java 设置 此处 添加 install4j 安装包 打包

install4j打包多平台java安装包

1. 下载安装install4j

官网下载最新install4j。

https://www.ej-technologies.com/products/install4j/overview.html

image

下载后安装。

注意:非最新版的install4j,在未注册时会提示"This installer was created with an evaluation version of install4j",请升级到最新版后注册使用。

2. 构建并运行项目

2.1 General Settings

2.1.1 Application Info

该页为设置应用的基本信息。

命名为clt_sdk_server

注意linux和macos的文件系统是区分大小写的,为了避免出现问题,使用下划线命名方式。

第1页如图填入软件名和版本号。

image

2.1.2 JRE Bundles

该页为设置JRE信息,可以选择在线的JRE8或者导入自定义的JRE库。

注意:如果你打包的项目里面含有DLL文件(或者SO文件),可以将这些文件放入到自定义的JRE的bin目录中,这样无需添加VM启动参数也可以将链接库加载到JVM中。

image

该页为设置Java版本和Java变量。

将Minimum version设置为1.8.0,其余的不要动,否则会报错。

image

2.1.3 Language

本页为设置安装包语言,将Principal language设置为Chinese(Simplified)[zh_CN]

image

2.1.4 Media File Options

此处选择安装包的输出目录和名称。

image

2.2 Files

2.2.1 Define Distribution Tree

点击右边+号按键,添加文件。将JAR包和相对应的lib文件添加到install4j中。

image

2.2.2 View Results

打包的文件树一般如图所示。

注意:将目录打包到安装包的时候,打包的文件时目录下一层的所有文件,所以打包的时候需要注意目录打包相关事宜。

image

2.3 Launchers

第一次打包点击New launcher

image

选择Generated launcher

image

设置名字和路径。

注意:如果不想要命令行窗口,请在此处Executable type选择Service,将进程注册为服务。

image

如果需要添加图标,请在此处添加,图标分辨率一般为64x64、128x128、256x256,一般不要超过256x256。

image

此处可以快捷添加虚拟机参数,后面可以详细添加。

image

此处导入本地库,需要在之前导入目录,否则此处不显示。点击右边+号按键即可添加。

image

此处添加虚拟机参数,如果前面导入了本地库,此处会自动添加。

image

直到点击添加完成。

2.4 Installer

此处设置安装和卸载的操作,并且能够设置样式。如果有需要可以在此处设置安装时创建快捷方式。

2.5 Media

此处添加生成的安装包,每个平台需要重新设置一次。第一次添加选择New media file

image

选择对应的平台,此处以Windows为例。

image

此处选择生成的架构包,此处以64-bit x86 (amd_x64)为例,后续一直点Next,直到Finish。

注意:其余平台也一样,这里主要是选择相对应的架构。

image

2.6 Build

左侧Dry Run为测试是否能够通过编译,Start Build为打包安装包。右侧为打包相对应的平台,可以一次打包多个平台,也可以每次打包一个平台。

image

然后就能打出相对应的包,需要注意的是,每种平台需要的库包不同,一般需要通过交叉编译获得。

标签:java,设置,此处,添加,install4j,安装包,打包
From: https://www.cnblogs.com/jonil/p/17604350.html

相关文章

  • 正则非贪婪 (清除java类三种注释)
    最大匹配(默认):  最小匹配(加一个问号):   匹配//注释:[\t ]*//.*[^\r\n]匹配/***/doc注释和/**/块注释():[\t ]*/\*[\s\S]*?\*/ 验证:/**Copyright(c)1994,2013,Oracleand/oritsaffiliates.Allrightsreserved.*/packagezz;/***......
  • java基础下(笔记)
    面向对象编程 本质:以类的方式组织代码,以对象来组织(封装)数据面向对象:分类的思维模式,首先思考解决问题需要哪些分类,然后对这些分类进行单独思考。面向过程:步骤清晰简单,每一步都清清楚楚。类和对象从认识论角度思考是先有对象后有类,对象是具体事物,类是对具体事物的抽......
  • kube 小工具 java log
     importjava.io.BufferedInputStream;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.StringReader;importjava.util.ArrayList;importjava.util.LinkedHashMap;importjava.util.List;importjava.util.......
  • JAVA系列之JVM内存调优
    文章目录一、前提二、JVM内存结构1、栈内存2、堆内存3、永久代(元空间)三、JVM常用参数1、堆大小设置2、垃圾回收器选择2.1吞吐量优先的并行收集器2.2响应时间优先的并发收集器3、其他辅助配置四、内存溢出排查1、元空间溢出(java.lang.OutOfMemoryError:Metaspace)2、栈深度不够(ja......
  • JAVA系列之类加载机制详解
    文章目录一、类加载过程二、类生命周期1、加载2、验证3、准备4、解析5、初始化三、双亲委派机制四、自定义类加载器的应用1、源代码加密2、隔离加载类3、热加载/热部署4、扩展加载源类的加载机制?双亲委派机制?什么是类加载器?自定义类加载器有哪些应用场景?通常,在关于Java的......
  • JAVA系列之内存模型(JMM)
    文章目录一、简介二、硬件内存模型1、高速缓存和缓存一致性2、CPU三级缓存3、缓存一致性4、Java线程与CPU5、指令重排序三、Java内存模型1、Java内存模型概念2、Java内存模型与硬件内存模型之间的关系3、Java内存模型作用4、Java内存模型的同步操作与规则5、Java内存模型三大特性5......
  • java 同一个对象之间赋值后添加入List中,属性值相互覆盖的问题解决方案
    1、for循环中NEW对象,因为List中存的是对象的引用地址。2、BeanUtils是属于spring框架下beans包下的工具类BeanUtils它提供了对java反射和自省API的包装。它里面还有很多工具类,这篇文章我们介绍一下copyProperties这个方法使用情景一般当我们有两个具有很多相同属性的JavaBean......
  • java输出字符和数字
    1、用java如何输出一个字符串中的所有数字?2、使用java语言编写程序,统计从控制台输入的一行字符串中数字个数、字母...3、java中怎么将字符串中的数字取出来4、JAVA怎样快速把字符串里面的数字取出来用java如何输出一个字符串中的所有数字?数字的ascii码是48-57共10个。......
  • 《深入理解Java虚拟机》读书笔记:Java内存区域
    Java内存区域包含程序计数器、虚拟机栈、本地方法栈、Java堆、方法区五个区域。运行时数据区分类 Java内存区域 一、程序计数器程序计数器(ProgramCounterRegister)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的信号指示器。字节码解释器工作时就是通过......
  • 三个实例演示 Java Thread Dump 日志分析
    jstackDump日志文件中的线程状态dump文件里,值得关注的线程状态有:死锁,Deadlock(重点关注) 执行中,Runnable  等待资源,Waitingoncondition(重点关注) Waitingonmonitorentry(重点关注)暂停,Suspended对象等待中,Object.wait()或TIMED_WAITING阻塞,Blocked(重点关注)......