简介 jpackage 是 JDK 14 引入的一个工具,旨在帮助开发者将 Java 应用程序打包成原生的可执行文件,支持 Windows、macOS 和 Linux 平台。...通过 jpackage,你可以将 Java 应用和其所需的依赖打包在一起,并创建本地安装程序。...本文将展示如何使用 jpackage 将一个简单的 Java 应用程序打包成可执行文件,包括打包 Windows (.exe),macOS (.app),和 Linux (.deb) 文件的步骤。...要添加到应用程序有效负载中的文件和 / 或 目录的逗号分隔路径列表。 此选项可以多次使用。...这些选项将添加到原始命令行选项中或者用来覆盖 原始命令行选项,以构建额外的替代启动程序。 将从命令行选项构建主应用程序启动程序。
前言 最近在本地用 tomca 启动项目的时候报了一段 tomcat 缓存不足的警告:无法将位于[xxxxx/xxxxx/xxxxx]的资源添加到Web应用程序[]的缓存中,因为在清除过期缓存条目后可用空间仍不足...- 请考虑增加缓存的最大空间。...这个错一般是 tomcat 在构建静态文件的时候需要的缓存空间不够,这个警告本身不影响项目运行,但强迫症的我还是忍受不了。????...解决办法 修改 tomcat /conf 下的 content.xml,在标签下增加如下内容: <Resources cachingAllowed="true" cacheMaxSize
通常建议使用前一种方法,将终结点添加到ASP.NET Core 3.0应用程序,因此从这里开始。...()方法中调用MapGraphVisualisation("/graph")将图形终结点添加到我们的ASP.NET Core应用程序中: public void Configure(IApplicationBuilder...将图形可视化工具添加为中间件分支 在您进行终结点路由之前,将分支添加到中间件管道是创建“终结点”的最简单方法之一。...:图形中没有/graph终结点,您无法轻松地将授权应用于此终结点!...我展示了如何创建中间件终结点来公开此数据,以及如何将这种中间件与分支中间件策略一起用作终结点路由。 我还展示了如何使用简单的集成测试来生成图形数据而无需运行您的应用程序。
我们将使用 Java 自带的 jar 命令行工具来创建 JAR 文件。然后学会使用 jpackage 工具创建各个系统上的可执行程序。...,最后是要添加到 jar 包中的文件列表。...jpackage 命令 jpackage 命令是从 Java 14 开始提供的,可以帮助我们为模块化或非模块化 Java 应用程序生成指定系统平台的可执行程序,而不用预先安装 JRE 环境。...对于模块化应用程序: jpackage -n name -p modulePath -m moduleName/className 对于非模块化应用程序:...: jpackage -n name --app-image appImageDir 生成应用程序映像: 对于模块化应用程序: jpackage
1.问题描述:anaconda的envs的其中一个环境目录下,没有python.exe文件,只有conda-meta和scripts 平时创建虚拟环境都是: conda create -n test...#test为创建的虚拟环境名称 因为之前也创建过好几次了,在命令行中也没有报任何错误,于是准备将刚配置的test虚拟环境添加到pycharm解释器中,但是发现在test环境中根本找不到除conda-meta...外的其他任何文件,通过下图来比较一下正常的虚拟环境和test虚拟环境的差别,如下图所示 2....是此anaconda默认版本的python 以为就没问题了 原来不指定python版本的话这个env文件夹下就没有bin文件夹 无法正常激活、使用 使用的还是base环境(尽管前面标出了一个(xxxxx...=3.8 #test为创建的虚拟环境名称 这样就可以啦。
通过使用 jlink (JEP 282)来减少 Java 运行时的大小,用户将能够创建一个更小的图像来运行特定的应用程序。应用程序所需的模块集可以通过 jdeps命令确定。...具体操作 该 jpackage工具将 Java 应用程序打包到特定于平台的包中,其中包含所有必需的依赖项。应用程序可以作为普通 JAR 文件的集合或作为模块的集合提供。...如果您有一个模块化应用程序,由目录中的模块化 JAR 文件和/或 JMOD 文件组成,并且 lib模块中的主类 myapp,则命令 $ jpackage --name myapp --module-path...如果 myapp模块未标识其主类,那么您必须再次明确指定: $ jpackage --name myapp --module-path lib -m myapp/myapp.Main (创建模块化 JAR...但是,直接缓冲区是有限的。例如,无法创建大于 2 GB 的直接缓冲区,因为 ByteBufferAPI 使用 int基于索引的方案。
孵化器阶段的向量 API,其中 JDK 将安装一个孵化器模块,用于表示编译为支持的 CPU 体系结构上的最佳矢量硬件指令的矢量计算,以实现与等效标量计算更高的性能。...增加 Unix 域套接字通道,其中 Unix 域 (AF_UNIX) 套接字支持添加到 nio.channels 包中的套接字通道和服务器套接字通道 API 中。...在 JDK 16 上,模式匹配允许程序中的通用逻辑,即从对象中提取组件,可以更简洁、更安全地表达.instanceof 运算符。 提供用于打包独立的 Java应用程序 jpackage 工具。...最初作为 JDK 14 中的孵化工具,jpackage在 JDK 15中仍然处于孵化期。...新的打包工具解决了许多 Java 应用程序需要以一流的方式安装在本机平台上,而不是放置在类路径或模块路径上等问题。 OpenJDK 源代码存储库从 Mercurial 迁移到 Git。
该jpackage工具将java的应用程序打包到特定的平台的程序包中,该程序包包含所必须的依赖....默认情况下,jpackage以最适合其运行系统的格式生成软件包 项目打包-非模块化项目 如果有一个包含jar文件的应用程序,所有的应用程序都位于一个名为lib 的目录总,并且lib/main.jar...包含主类,可以通过如下命令打包 $ jpackage --name myapp -- input lib --main-jar main.jar 将以本地系统的默认格式打包应用程序,将生成的打包文件保留到当前目录中...模块化项目 如果您有一个模块化应用程序,该程序有目录中的模块化jar文件或JMOD文件组成,并且模块中lib包含主类myAPP,则命令为 $ jpackage -name myapp --moudule-path...API更改 通过新模块中的公共API公开新的MApMode枚举值 一个公共扩展枚举ExtendedMapMode将添加到jdk.nio.mapmode程序包 package jdk.nio.mapmode
而我最近使用JavaFx搞了一个小工具,主要是对局域网内其他设备的搜寻和展示,目前已开源在gitee。 重点:本文将介绍如何将JavaFx工程打包为.exe文件。...utm_id=0 创建JavaFx项目 首先使用idea新建一个javafx的项目,填写好相关信息 接着下一步到选择GUI控件步骤 随后点击CREATE创建,就可以编写自己的代码了。...可以直接双击运行 这还不够,本文是要将这个app.bat打包为.exe,这里使用jpackage进行打包(注意:jpackage 是在jdk14正式引入的打包工具) 使用jpackage打包成exe 首先使用...--module -m:格式[/],模块名/main,不会写可以直接复制pom.xml中的mainClass标签内容。...我们将这些脚本代码复制下来,创建一个ChineseSimplified.isl文件,把脚本代码放进去 2,找到Inno Setup安装文件,进入Languages子文件夹,将刚刚的ChineseSimplified.isl
描述 jpackage打包工具可以将Java应用程序打包为针对特定平台的安装包,这个安装包包含所有必需的依赖项。该应用程序可以以普通JAR文件集合或模块集合的方式提供。...pkg 基本用法:模块化应用 如果你有一个模块化应用程序,该应用程序由lib目录中的模块化JAR文件和/或JMOD文件组成,并且主类位于myapp模块中,则下面的命令 $ jpackage --name...如果myapp模块无法识别主类,则必须明确指定: $ jpackage --name myapp --module-path lib -m myapp/myapp.Main G1的NUMA内存分配优化...与创建记录相关的开销包括: 发出在创建新记录时必须发生的事件 写入事件元数据(例如字段布局) 写入检查点数据(例如堆栈跟踪) 将数据从磁盘存储复制到单独的记录文件 如果有一种方法,可以在不创建新记录文件的情况下...的API更改 通过新模块中的公共API公开新的MapMode枚举值 一个公共扩展枚举ExtendedMapMode将添加到jdk.nio.mapmode程序包: package jdk.nio.mapmode
该建议确实存在主要风险,即现有版本的 Java 代码将无法运行。鼓励开发人员使用 jdeps 工具来识别代码中依赖的 JDK 内部元素,并在可用时切换到 标准替代版本。...通过使用 jlink 来减少 Java 运行时的大小,用户可以创建一个更小的镜像,以运行特定的应用程序。 11、[提供记录类,作为不可变数据的透明载体。记录类可以认为是名义元组。...模式匹配使程序中的通用逻辑(即从对象中有条件地提取组件)得以更简洁、安全的表达。 15、提供一款名为 jpackage 的工具,用于独立打包 Java 应用程序。...到了JDK 16,jpackage 将投入生产,支持本地的软件包格式,从而为用户提供自然的安装体验,并允许在打包时指定启动时参数。...新的打包工具解决了这样一种情况:许多Java应用程序需要以全局可用的方式安装在本机平台上,而不是简单地放置在类路径或模块路径上。因此提供适合本机平台的可安装软件包非常有必要。
同时,它也将面向以TB为单位的超大规模的内存。在Java 16中,ZGC的线程栈处理的众多操作,从检查点移动到了并发阶段,这样意味着停顿更小了。...新的打包工具 提供了一个新的打包工具jpackage,用来打包独立的Java应用程序。这个工具可以生成windows上的exe和msi,MacOS上的pkg和dmg,以及linux上的deb和rpm。...比如,对于非模块化的应用,可以这么打包: jpackage --name myapp --input lib --main-jar main.jar 或者 直接指定main class jpackage...--name myapp --input lib --main-jar main.jar --main-class myapp.Main 对于模块化的应用: jpackage --name myapp...但是,我们的代码却无法继承AbstractStringBuilder,因为AbstractStringBuilder是包内可见的,并不是public的。
3 新工具和库 增加 Unix 域套接字通道 其中 Unix 域 (AF_UNIX) 套接字支持添加到 nio.channels 包中的套接字通道和服务器套接字通道 API 中。...新功能的目标是支持 Unix 域套接字通道的所有功能,这些功能在主要 Unix 平台和 Windows 中很常见。 包装工具 提供jpackage工具,用于打包独立的Java应用程序。...jpackage --name myapp --module-path lib -m myapp 4 为未来做好准备 对基于值的类进行警告 对在 Java 中错误进行基于值类实例的操作发出警告。...5 孵化器和预览特性 Vector API 孵化器阶段的向量 API,其中 JDK 将安装一个孵化器模块,用于表示编译为支持的 CPU 体系结构上的最佳矢量硬件指令的矢量计算,以实现与等效标量计算更高的性能...OpenJDK 源码迁移到 Github 将 JDK 移植到 Alpine Linux 和其他使用 musl 作为主 C 库的 Linux 发行版 在 x64 和 AArch64 体系结构上,将JDK移植到
孵化器模块(Incubator Module)中引入了一些增强,这是一种将非最终 API 和非最终工具交给开发人员的方法,该方法允许用户提供反馈,从而改善 Java 平台的质量。...消除 ZGC 垃圾收集器中最后一个延迟源可以极大地提高应用程序的性能和效率。...具有大量类加载和卸载活动的应用程序可能会占用大量未使用的空间。新方案将元空间内存按较小的块分配,它将未使用的元空间内存返回给操作系统来提高弹性,从而提高应用程序性能并降低内存占用。...JEP 392,打包工具 此特性最初是作为 Java 14 中的一个孵化器模块引入的,该工具允许打包自包含的 Java 应用程序。...注意 jpackage 模块名称从 jdk.incubator.jpackage 更改为 jdk.jpackage。这将改善最终用户在安装应用程序时的体验,并简化了“应用商店”模型的部署。
将所有的单存储库 OpenJDK 项目从 Mercurial 迁移到 Git。 保留所有的版本控制历史,也包括 Tag。 根据 Git 的最佳实践重新格式化提交的消息。...创建了一个工具用来在 Mercurial 和 Git 哈希之间进行转换。 扩展阅读:https://openjdk.java.net/jeps/357 3....JEP 387:更好的 Metaspace 自从引入了 Metaspace 以来,根据反馈,Metaspace 经常占用过多的堆外内存,从而导致内存浪费,现在可以更及时地将未使用的 HotSpot class-metaspace...JEP 392:打包工具 在 Java 14 中,JEP 343 引入了打包工具,命令是 jpackage,在 Java 14 新功能文章里也做了介绍: 使用 jpackage 命令可以把 JAR 包打包成不同操作系统支持的软件格式...此 JEP 将 --illegal-access 选项的默认模式从允许更改为拒绝。通过此更改,JDK的内部包和 API(关键内部 API除外)将不再默认打开。
当然,如果整个团队都使用该版本,则需要同时升级IDE,否则低版本的IDE无法正确识别。...在idea 2020.1中,创建Record与创建类和枚举一样,可以在创建时直接选择对应的类型。...文本块的开头定界符是由三个双引号字符(""")组成的序列,后面跟0个或多个空格,最后跟一个行终止符。内容从开头定界符的行终止符之后的第一个字符开始。 结束定界符是三个双引号字符的序列。...内容在结束定界符的第一个双引号之前的最后一个字符处结束。 与字符串文字中的字符不同,文本块的内容中可以直接包含双引号字符。允许在文本块中使用",但不是必需的或不建议使用。...打包工具 (Incubator) jpackage打包工具可以将Java应用程序打包为针对特定平台的安装包,这个安装包包含所有必需的依赖项。该应用程序可以以普通JAR文件集合或模块集合的方式提供。
领取专属 10元无门槛券
手把手带您无忧上云