将.jar转换为适用于Windows、Linux和Mac的应用程序

2022-04-17 00:00:00 windows macos executable linux java

我用Eclipse制作了一个Java应用程序(在*.jar中导出),我想将它导出到Windows(.exe)、Linux(.?)和MAC(.?)。我没有任何Linux或MAC机器,所以我不知道每个机器都需要什么扩展文件。所以我有几个问题:

  • 对于Windows,我使用Launch4j创建了我的*.exe文件,但是否有用于MAC和Linux的同等文件?

  • 我的应用程序将选项保存到Windows注册表中(我使用了"JavaRegisrtyWrapper"库)。是否有用于MAC和Linux的"注册表"(以及如何在那里读/写信息)?

  • 当用户尝试在下载后启动*.exe文件时,是否可以避免出现Windows警告"未知发布者"?(我会在MAC和Linux上遇到同样的问题吗?)我尝试创建自己的证书,并使用"signtool.exe"对文件进行签名,但不起作用。

谢谢!

编辑:在将*.jar文件转换为任何其他格式之前,我必须修改代码以获取用户的操作系统,并针对每种情况修改"Documents"文件夹。我认为os.name可以满足第一个请求,但我可以将user.home + "Documents"用于Windows、Linux和Mac(如果此文件夹存在...)吗?


解决方案

运行JAR应用程序的脚本

在Linux和Mac OS上,您可以创建运行.jar文件的bash脚本:

#!/bin/bash java -jar application.jar

基于Unix的系统上的Windows注册表等效项

在Linux和Mac OS上没有对应的Windows注册表。您可以将您的配置存储在文本文件中。计算机特定的配置通常存储在/etc目录树中。

这里有一个类似的超级用户问题:https://superuser.com/questions/295635/linux-equivalent-of-windows-registry

签署Windows EXE文件

若要对Windows exe文件进行签名,可以尝试使用Microsoft's Sign Tool。

这里有一个类似的堆栈溢出问题:Signing a Windows EXE file

相关文章