Dea*_*uce 7 java linux windows macos executable
我用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文件转换为任何其他格式之前,我必须修改我的代码以获取用户的操作系统,以及每个案例的"文档"文件夹.我认为os.name可以满足第一个请求,但我可以user.home + "Documents"用于Windows,Linux和Mac(如果此文件夹存在...)?
Linux 不一定有扩展。通常二进制文件只是没有一个。要将它们标记为可执行文件,请在文件上设置 +x 标志,这将授予文件执行的权限。
OSX 也不一定有扩展名。如果您想在 Mac 上安装您的程序,它将被打包在一个扩展名为.app.
Launch4j 可以为您生成适用于所有平台、Mac OSX、Linux 和 Windows 的二进制文件。
“警报”问题是因为您的应用程序未签名。签署申请意味着将其密封起来,以后无法修改(可以修改,但会破坏密封)。在 OSX 上,您可以获得开发人员证书并在(安装了证书)codesign上使用。在 Linux 上,您不会遇到此问题,因为程序通常不会被签名(包管理器的包通常会被签名,此信息在安装后会丢失)。.appcodesign -s "certname"
在 Windows 上,您还可以购买证书。这样做并签署您的程序后,根据用户的设置,“警报”可能仍然会出现,但它会显示开发人员或公司名称,而不是未知(只有在未签名或签名的程序在之后被修改的情况下才会出现未知)签名)。
| 归档时间: |
|
| 查看次数: |
1705 次 |
| 最近记录: |