为不同平台创建独立的 Java 可执行文件,无需安装

2024-01-08

我使用 jlink 创建了一个 Java 应用程序运行时映像。我希望能够将软件作为可执行文件发送到不同的平台。 (最好是在一个平台上构建,例如交叉编译。)

理想情况下,它是一个用户可以双击启动的应用程序文件,而无需安装任何东西。

如何才能做到这一点?


您所描述的是所谓的本机可执行文件。有些程序会将您的 Java 应用程序包装成可执行文件,但由于 Java 在 Java 虚拟机 (JVM) 上运行其代码,因此您的用户需要预先安装它,您的程序才能开箱即用。您可以使用 C++ 或 C# 等语言为应用程序编写一个安装程序(C# 在预装在所有 Windows 计算机上的 .NET 运行时上运行),该安装程序会安装 JVM 以及可能的应用程序,然后将该代码编译为本机可执行文件。这样,最终用户就不需要四处寻找 Java 下载。我相信这就是《我的世界》所采取的方法。

使用以下任一方法将 Java 可执行文件包装为本机可执行文件:

  • Launch4J http://launch4j.sourceforge.net/(视窗)

  • 甲骨文文档 https://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html (MacOS)

  • 话语 https://discourse.appimage.org/t/tutorial-to-create-appimage-out-of-java-application/461 (Linux)

  • Quarkus https://quarkus.io/guides/building-native-image#producing-a-native-executable(本机可执行文件,无安装程序)

  • 经纱包装机 https://github.com/dgiagio/warp(自解压可执行文件,无安装程序)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为不同平台创建独立的 Java 可执行文件,无需安装 的相关文章

  • JPA 实体中的方法是否允许抛出异常?

    我尝试创建的 Entity 有问题 当尝试使用 OpenJPA 实现在 Eclipse 中测试类时出现问题 我有not尝试过其他人 所以不确定它是否适用于他们 我的测试用例非常简单 因为它创建一个 EntityManagerFactory
  • 编译错误:Android Studio

    我正在尝试修改基于 IntelliJ 构建的现有 Android 项目 我已经搜索并尝试了很多东西 但我的错误仍然没有消失 Error 5 1 android apt compiler main D android tinynote app
  • 定制法国号码格式

    我尝试为美国国家 地区使用自定义数字格式 到目前为止效果很好 Not something I want NumberFormat numberFormat0 NumberFormat getNumberInstance Locale US
  • 如何使用 log4j 自动记录类中调用的每个方法

    我有一个包含数据库调用的类 我通常希望使用 log4j 记录该类中调用的每个方法 带参数 logger debug foo id id initiated 可以自动执行此操作吗 也许通过在每个方法的开头使用某种注释而不是编写每个 logge
  • 在 Jenkins 内运行构建时,我收到“java/lang/OutOfMemoryError”

    2020 02 25 10 11 24 986 0000 id 79 信息hudson model AsyncPeriodicWork lambda doRun 0 开始maven repo cleanup 2020 02 25 10 11
  • JTable AutoCreateRowSorter 将数字排序为字符串

    我有一个 JTable JTable table new JTable String colNames c1 DefaultTableModel model new DefaultTableModel Integer x new Integ
  • Java 创建 Thread 实例时会发生什么

    我有一个关于 Java 线程和操作系统线程的问题 我读了Java 线程与 Pthreads https stackoverflow com questions 5269535 java threads vs pthreads and Jav
  • 在 Android 中使用 lambdaj

    有人尝试过在android开发中使用lambdaj库吗 当我创建一个简单的小型java应用程序时 它对我来说工作得很好 但我无法在android应用程序中使用它 UPDATE 我正在添加 lambdaj lambdaj 2 3 2 with
  • 如何提高 Guice 启动时的性能

    好吧 我知道我的计算不客观等等 但无论如何 我讨厌在执行单元测试时等待这么多时间 我的 guice swing 应用程序需要大约 7 秒来初始化 这是一个简单的 IRC 客户端 在那一刻 没有打开连接 我什至还没有调用任何 java io
  • 使用 javax.mail 和 CentOS 的邮件服务器

    我有一个 Java 程序 安装在一台旧的 Ubuntu 机器上 并使用 javax mail 发送邮件 然而 那台机器宕机了 我现在在新的 CentOS 机器上运行相同的 Java 应用程序 但是 当我尝试使用 mail smtp host
  • Java反序列化中避免重复对象

    我有两个列表 list1 和 list2 其中包含对某些对象的引用 其中某些列表条目可能指向同一对象 然后 由于各种原因 我将这些列表序列化为两个单独的文件 最后 当我反序列化列表时 我想确保我不会重新创建超出需要的对象 换句话说 List
  • ObservableList 不更新 ArrayList

    对于学校作业 我们正在使用 JavaFX 中的 ObservableList 对象 对吗 我已经为此工作了一天多了 但无法弄清楚 老师只告诉我们 谷歌一下 所以这也没有帮助 基本上 我们正在开发一个基本的管理应用程序来跟踪人们及其家人 人们
  • 如何将我的自定义相机应用程序设置为默认应用程序?

    如果我使用以下代码 Intent takePictureIntent new Intent MediaStore ACTION IMAGE CAPTURE startActivityForResult takePictureIntent 1
  • 使用 Java 进行 AES 加密并使用 Javascript 进行解密

    我正在制作一个需要基于 Java 的 AES 加密和基于 JavaScript 的解密的应用程序 我使用以下代码作为基本形式进行加密 public class AESencrp private static final String ALG
  • java.lang.NoSuchMethodError:com.fasterxml.jackson.databind.type。使用 apache beam Spark runner 运行 go 示例时

    我想跑grades https github com apache beam tree master sdks go examples gradesapache beam go sdk 提出的示例 在一个主服务器和两个从服务器 spark2
  • 如何实现再次播放功能?

    我希望在游戏结束时得到提示 如果我还想再玩一次的话 并使用 Y N 输入 退出游戏或重复游戏 我该如何以最有效的方式解决这个问题 编辑 描述资源路径位置类型 类型 Main Main java ScaredyCat src se grupp
  • 在调试模式下,哪些代码更改会自动反映在 Eclipse 中?

    我使用 eclipse 用于编写 调试 作为 IDE 在调试模式下 当我进行一些更改 例如初始化局部变量 时 它们会自动反映 但其他更改例如更改静态变量的值 有时我会收到一条消息 说我需要重新启动虚拟机 有时则不需要 现在的问题是哪些类型的
  • 仅在java中使用数组计算50的阶乘

    我是java的初学者 我有一个作业要编写一个完整的程序 使用数组计算 50 的阶乘 我无法使用像 biginteger 这样的任何方法 我只能使用数组 因为我的教授希望我们理解背后的逻辑 我猜 然而 他并没有真正教我们数组的细节 所以我在这
  • 用于将字符串与通配符模式进行匹配的递归函数

    所以我一整天都在试图解决这个作业 只是无法完成 以下函数接受 2 个字符串 第二个 不是第一个 可能包含 的 星号 An 是字符串的替换 空 1个字符或更多 它可以出现 仅在s2中 一次 两次 更多或根本不出现 它不能与另一个相邻 ab c
  • Spring Data JPA 和 Exists 查询

    我正在使用 Spring Data JPA 使用 Hibernate 作为我的 JPA 提供程序 并想要定义一个exists附加 HQL 查询的方法 public interface MyEntityRepository extends C

随机推荐

  • Ctrl Space 在 Win 7 上的 Eclipse Helios 中不起作用

    我最近从 Dev Env 转移到 Windows 7 上的 Eclipse Helios 此后 Ctrl Space 内容辅助功能不起作用 我发现该关键选项是由语言设置使用的 我已尝试禁用它 但在 Eclipse 中仍然不起作用 任何帮助深
  • 什么是 git 守护进程?

    什么是 git 守护进程 这是默认的 git 功能吗 我试图理解这一点 以便我可以在服务器上托管一个存储库 人们可以从中推送 拉取 到目前为止 我能够将 bare 存储库克隆到 Apache 服务器上 然后使用 update server
  • Mathematica 中的词法和动态作用域:带有 Module、With 和 Block 的局部变量

    以下代码如您所料返回 14 Block expr expr 2 z f z expr f 7 但如果你改变这一点Block to a Module然后它返回2 z 除了其他变量之外 其他变量似乎并不重要expr你本地化 我以为我理解 Mat
  • jquery val() contains()

    我想知道文本区域值是否包含某个单词 这对我不起作用 var value embedModal textarea val if value contains iframe 尝试 JavaScript if value indexOf ifra
  • 如何在 VBA 中的两个打开的 Excel 实例之间进行复制?

    我想将数据从一个已打开的 Excel 实例复制到 VBA 中的另一个 Excel 实例 我试过 Option Explicit Sub copy paste Dim destination sanitized As String Dim f
  • Objective-C 设置 nil 和释放 nil 的区别

    我了解到 在dealloc you do object release but in viewDidUnload 在 UIViewController 子类中 你做self object nil 真正的区别是什么 因为self object
  • 带有 Youtube API 的 Chrome 扩展程序显示不一致的结果

    我正在构建一个 chrome 扩展来使用 youtube 的 API 它是这样工作的 内容脚本会通过 manifest json 自动注入到每个 YouTube 页面上 permissions tabs http https
  • 脚本内的 match_query ? [弹性搜索]

    我有一个相当复杂的聚合 它的复杂性是由于缺少 has parent 聚合引起的 既然如此 它是使用groovy 实现的 我遇到的唯一问题是过滤聚合中计数的文档 聚合看起来像这样 https gist github com serj p c4
  • 将自定义字段添加到课程 Moodle [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是 Moodle 新手 我需要您的建议来创建插件 该插件将在 添加 编辑课程 页面上添加自定义字段 并将输入值存储在mdl cour
  • Angular 2 SVG 未渲染

    我创建了一个组件来渲染我的应用程序中的 SVG 图像 它们是动态加载的 但是 我的演示应用程序仅显示一个更简单的版本 http plnkr co edit g2tZXeUAMJ5zESx2EHT0 p info http plnkr co
  • 如何旋转 UIWebView 嵌入视频

    所以我正在构建的应用程序遇到了这个问题 我无法弄清楚 我的应用程序具有以下结构 UITabBarController gt UIViewController gt UIViewController 最后一个视图控制器包含一个加载整个页面的
  • 如何使用 System.DirectoryServices.Protocol 验证用户名/密码?

    首先 我不能使用活动目录 所以我不能使用System DirectoryServices直接地 这将是一台向 Novell 网络发送查询的 PC 其中仅System DirectoryServices Protocol是支持的 我非常确定我
  • 在 Swift 2 中安排特定时间的本地通知

    我浏览过这些论坛和其他网站 但不断得到一些不合逻辑的答案 本质上 我想创建一个在每个工作日的上午 6 28 中午 12 28 和下午 5 28 触发的通知 我有一些解决方案 但我真的不确定该去哪里 我的设置完全正确吗 任何帮助表示赞赏 le
  • 使用 Swift 创建随机图像生成器

    我试图让随机图像出现在屏幕上 但我是 Swift 新手 不知道如何做到这一点 打开应用程序时 我希望在图像视图中随机显示三张图像 我该怎么做呢 生成 0 到 2 之间的随机数 并通过随机生成的数字显示图像 var random arc4ra
  • ASP.NET 会话 - 使用或不使用电子商务应用程序以及最佳实践

    我在大多数 Intranet 场景中使用过 ASP NET 并且非常熟悉它 但对于诸如购物车或类似会话数据之类的东西 有多种可能性 仅举几例 1 状态服务器会话 2 SQL Server 会话 3 自定义数据库会话 4 饼干 您使用了什么以
  • SymPy 虚数

    我正在编写一些 SymPy 代码来处理带有虚数的符号表达式 首先 我想让它把 x 和 y 作为实数并找到 x iy 的解 所以我可以按如下方式执行此操作 x y sympy symbols x y real True print sympy
  • 如何将连接字符串中的“提供商名称”添加到上下文文件中?

    我正在使用 Entity Framework 5 代码优先方法 这是我的上下文文件 using IMS Domain Inventory using IMS Domain Security using IMS Domain StoredPr
  • 如何重定向“time”命令的输出?

    我尝试重定向 time 命令的输出 但我不能 time ls gt filename real 0m0 000s user 0m0 000s sys 0m0 000s 在文件中我可以看到输出ls命令 而不是time 请解释一下为什么我不能以
  • 如何更改 TabHost 中的选项卡图像

    我在应用程序中使用 TabHost 在应用程序中使用四个选项卡 并且当选择特定选项卡和未选择特定选项卡时 我想在 TabHost 中使用不同的图像 我需要为每个特定选项卡使用不同的图像 当我选择任何选项卡时 图像有点亮 当我切换到另一个选项
  • 为不同平台创建独立的 Java 可执行文件,无需安装

    我使用 jlink 创建了一个 Java 应用程序运行时映像 我希望能够将软件作为可执行文件发送到不同的平台 最好是在一个平台上构建 例如交叉编译 理想情况下 它是一个用户可以双击启动的应用程序文件 而无需安装任何东西 如何才能做到这一点