将.jar转换为适用于Windows、Linux和Mac的应用程序
我用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
相关文章