首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从jlink镜像创建所有包含windows可执行文件

从jlink镜像创建所有包含Windows可执行文件的过程如下:

  1. 首先,我们需要了解jlink是什么。jlink是Java 9及更高版本中引入的一个工具,用于创建自定义的JRE(Java Runtime Environment)镜像。它可以根据应用程序的需求,仅包含所需的Java模块和依赖项,从而减小JRE的大小。
  2. 创建jlink镜像的第一步是安装JDK(Java Development Kit)。确保已经安装了适当版本的JDK,并且配置了JAVA_HOME环境变量。
  3. 打开命令行终端(Windows下为命令提示符或PowerShell),输入以下命令来检查是否正确安装了JDK:
  4. 打开命令行终端(Windows下为命令提示符或PowerShell),输入以下命令来检查是否正确安装了JDK:
  5. 如果显示了正确的Java版本信息,则说明JDK已经正确安装。
  6. 接下来,我们需要创建一个模块化的Java应用程序。确保应用程序使用了Java 9或更高版本的模块化特性。
  7. 在应用程序的根目录下,打开命令行终端,并执行以下命令来编译和打包应用程序:
  8. 在应用程序的根目录下,打开命令行终端,并执行以下命令来编译和打包应用程序:
  9. 这将编译源代码并将其打包为一个JAR文件。
  10. 确保已经安装了jlink工具。在命令行终端中输入以下命令来检查是否已安装:
  11. 确保已经安装了jlink工具。在命令行终端中输入以下命令来检查是否已安装:
  12. 如果显示了正确的jlink版本信息,则说明jlink已经正确安装。
  13. 使用jlink命令来创建自定义的JRE镜像。以下是一个示例命令:
  14. 使用jlink命令来创建自定义的JRE镜像。以下是一个示例命令:
  15. 这个命令将使用应用程序的JAR文件和JDK的模块路径来创建一个包含指定模块的JRE镜像。你可以根据实际情况修改命令中的模块名称和输出目录。
  16. 创建完毕后,你将在指定的输出目录(例如myjre)中找到自定义的JRE镜像。该镜像将只包含应用程序所需的模块和依赖项。
  17. 要在Windows上创建可执行文件,我们可以使用jpackage工具。jpackage是Java 14及更高版本中引入的一个工具,用于将Java应用程序打包为本机安装程序。
  18. 确保已经安装了jpackage工具。在命令行终端中输入以下命令来检查是否已安装:
  19. 确保已经安装了jpackage工具。在命令行终端中输入以下命令来检查是否已安装:
  20. 如果显示了正确的jpackage版本信息,则说明jpackage已经正确安装。
  21. 使用jpackage命令来创建可执行文件。以下是一个示例命令:
  22. 使用jpackage命令来创建可执行文件。以下是一个示例命令:
  23. 这个命令将使用自定义的JRE镜像(myjre)和应用程序的JAR文件来创建一个Windows可执行文件。你可以根据实际情况修改命令中的输入目录、应用程序名称、主要JAR文件、主类和输出目录。
  24. 创建完毕后,你将在指定的输出目录(例如installer)中找到生成的Windows可执行文件。

总结:通过以上步骤,我们可以从jlink镜像创建所有包含Windows可执行文件。这样做的优势是可以根据应用程序的需求,定制化地创建一个仅包含所需模块和依赖项的JRE镜像,从而减小应用程序的大小和依赖。这种方法适用于需要将Java应用程序打包为本机安装程序并在Windows上运行的场景。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云原生容器服务(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(TBaaS):https://cloud.tencent.com/product/tbaas
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  • 腾讯云移动开发(移动推送、移动分析):https://cloud.tencent.com/product/mps
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

CMake vs Make对比

程序员现在已经使用了CMake和Make了很久。当您加入大公司或开始使用大型代码库开发项目时,您需要处理所有这些构建。你必须看到这些“CMakeLists.txt”文件浮动。你应该在终端上运行“cmake”和“make”命令。很多人只是盲目地按照指示,不是真的关心为什么我们需要以某种方式做事情。这个整个构建过程是什么,为什么它这样构造?CMake和Make之间有什么区别?有关系吗?可以互换吗? 事实证明,它们是完全不同的。了解他们之间的区别是非常重要的,以确保您不会陷入困境。在分析之前,先看看它们是什么。 make 我们设计软件系统的方式是我们首先编写代码,然后编译器编译并创建可执行文件。这些可执行文件是执行实际任务的可执行文件。“Make”是从程序的源文件中控制程序的可执行文件和其他非源文件的生成工具。 “Make”工具需要知道如何构建程序。它了解如何从名为“makefile”的文件构建程序。这个makefile列出了每个非源文件以及如何从其他文件中计算它。编写程序时,应该为其编写一个makefile,以便可以使用“Make”来构建和安装程序。简单的东西!如果您不明白,请再次阅读该段落,因为下一部分重要。 为什么我们需要“Make”? 我们需要“Make”的原因是因为它使最终用户能够构建和安装您的软件包,而无需了解其操作的详细信息。每个项目都有自己的规则和细微差别,每当你有一个新的合作者,它都会变得非常痛苦。这就是我们有这个makefile的原因。构建过程的细节实际上记录在您提供的makefile中。根据哪些源文件已更改,“自动”自动显示需要更新的文件。它还自动确定更新文件的正确顺序,以防一个非源文件依赖于另一个非源文件。 每当我们改变系统的一小部分时,重新编译整个程序将是低效的。因此,如果您更改了一些源文件,然后运行“Make”,它不会重新编译整个事情。它仅更新直接或间接依赖于您更改的源文件的那些非源文件。很整洁!“Make”不限于任何特定语言。对于程序中的每个非源文件,makefile指定了用于计算它的shell命令。这些shell命令可以运行一个编译器来产生一个对象文件,链接器生成一个可执行文件,以便更新一个库,Makeinfo格式化文档等。“Make”不仅限于构建一个包。您还可以使用“Make”来控制安装或卸载软件包,为其生成标签表, CMake的 CMake代表跨平台制作。CMake识别哪个编译器用于给定类型的源。如果您不知道,您不能使用相同的编译器来构建所有不同类型的源。您可以在每次建立项目时手动执行,但这将是乏味和痛苦的。CMake为每种类型的目标调用正确的命令序列。因此,没有明确指定像$(CC)这样的命令。 为了编码真正想要血液细节的垃圾,请继续阅读。如果你不是所有的,你可以跳到下一节。处理包含头文件,库等的所有常见的编译器/链接器标记都被平台独立的和构建系统无关的命令所取代。调试标志包括将变量CMAKE_BUILD_TYPE设置为“调试”,或者在调用程序时将其传递给CMake: cmake -DCMAKE_BUILD_TYPE:STRING =调试。 CMake还提供平台独立包含'-fPIC'标志(通过POSITION_INDEPENDENT_CODE属性)和许多其他。尽管如此,还可以通过CMake以及Makefile(通过使用COMPILE_FLAGS和类似属性)手动实现更为模糊的设置。当然,当第三方库(如OpenGL)以便携式的方式被包含时,CMake真的开始闪耀。 有什么不同? 如果您使用Makefile,即在命令行中键入“make”,则构建过程有一个步骤。对于CMake,有两个步骤:首先,您需要设置构建环境(通过在构建目录中键入cmake <source_dir>或运行某些GUI客户端)。根据您选择的构建系统(例如,在Windows上的Make on * nix,VC ++或MinGW等),这将创建一个makefile或相当的东西。构建系统可以作为参数传递给CMake。但是,CMake根据您的系统配置做出合理的默认选项。其次,您在选定的构建系统中执行实际构建。 我们将在这里跳入GNU构建系统领域。如果你不熟悉,这一段可能看起来像是jibber-jabber给你。好的,现在我给了法定的警告,我们继续吧!我们可以比较CMake和Autotools。当我们这样做时,我们可以看到Make的缺点,它们构成了Autotools创建的原因。我们还可以看到CMake对Make的明显优势。Autoconf解决了一个重要的问题,即可靠地发现系统特定的构建和运行时信息。但这只是便携式软件开发中的一小部分。为此,GNU项目开发了一套集成的实用工具来完成Autoconf开始的工作:GNU构建系统,其最重要的组件是Autoconf,Automake和Libtool。 “做”不能这样做,至少没

03

【安富莱专题教程第4期】SEGGER的J-Scope波形上位机软件,HSS模式简单易用,无需额外资源,也不需要写目标板代码

说明: 1、在实际项目中,很多时候,我们需要将传感器或者ADC的数值以波形的形式显示。通常的解决办法是用串口上位机,USB接口上位机或者MDK的逻辑分析仪功能,使用这三种方式都比较繁琐。本期专题为大家讲解的J-Scope波形软件简单易用,不占用系统额外资源,无需用户写目标板代码,仅需将JLINK插上即可。 2、J-Scope波形显示软件主要有RTT和HSS两种工作方式。本期专题教程为大家讲解HSS模式的使用方法。HSS模式只需使用J-Scope加载MDK或者IAR的可执行文件即可,而且随时随地都可以连接目标板,不影响目标板的正常功能,不需要额外资源。同时可以设置上升沿,下降沿或者双沿触发。 3、大家买的D版JLINK,基本都是来自JLINK BASE,需要使用V9或者V10版本才行。而JLINK PRO或者JLINK ULTRA使用V4及其以上版本即可。 4、J-Scope专题教程的RTT模式将放在第6期专题教程做,这个模式更加实用,就是稍麻烦些,需要移植SEGGER的RTT组件,即使是普通的JLINK,速度也可以狂飙到500KB/S左右的上传速度。 5、更多相关内容和注意事项,看教程即可。

03

认识目标文件的格式——a.out COFF PE ELF

目标文件是源代码编译后未进行链接的中间文件(Windows的.obj和Linux的.o),与可执行文件(Windows的.exe和Linux的ELF)的结构和内容相似,因此跟可执行文件采用同一种格式存储。PC平台常见的可执行文件格式主要有Windows的PE(Portable Executable)和Linux的ELF(Executable and Linkable Format)。PE和ELF都是通用目标文件格式(COFF,Common Object File Format)的变种。在Windows下,我们将目标文件与可执行文件统称为PE-COFF文件,Linux统称为ELF文件。除此之外,还有些不常用的目标文件与可执行文件格式,比如Intel和Microsoft以前使用的对象模型文件(OMF,Object Module File)、Unix的最初使用的a.out和MS-DOS的.COM格式等。

03
领券