我用Eclipse制作了一个Java应用程序(导出为* .jar ),我想将它导出为Windows( .exe ),Linux( 。? )和MAC( 。? )。 我没有任何Linux或MAC机器,所以我不知道每个扩展文件是需要的。 所以我有几个问题:
对于Windows,我使用launch4j来创build我的* .exe文件,但是对于MAC和Linux是否有任何等价物?
我的应用程序将选项保存到Windowsregistry(我使用“ JavaRegisrtyWrapper ”库)。 是否有任何“registry”MAC和Linux(我怎样才能读/写信息那里)?
当用户尝试在下载后启动* .exe文件时,是否可以避免Windows用户提醒“未知发行者”? (我会在MAC和Linux上遇到同样的问题吗?)。 我试图创build我自己的证书,并签署与“signtool.exe”文件,但它没有工作。
如何防止Linux程序多次运行?
什么是Windows / CMD的可执行文件types? 他们的重点是什么?
有没有一种工具将结合一个32位+ 64位应用程序,并将它们组合在一个32位+ 64位应用程序中
二进制文件的相对path
谢谢 !
编辑:在将* .jar文件转换为任何其他格式之前,我必须修改我的代码以获取用户的操作系统和每个案例的“文档”文件夹。 我认为os.name可以满足第一个请求,但我可以使用user.home + "Documents"的Windows,Linux和Mac(如果此文件夹存在…)?
什么是图像的bss部分?
如何使用C ++获取有关Windows可执行文件(.exe)的信息
运行JAR应用程序的脚本
在Linux和Mac OS上,您可以创建一个运行.jar文件的bash脚本:
#!/bin/bash java -jar application.jar
基于Unix的系统上的Windows注册表等效项
在Linux和Mac OS上没有Windows注册等效项。 您可以将您的配置存储在ie文本文件中。 机器特定的配置通常存储在/ etc目录树中。
这是一个类似的超级用户问题: https : //superuser.com/questions/295635/linux-equivalent-of-windows-registry
签署Windows EXE文件
为了签署Windows exe文件,你可以尝试使用微软的Sign工具 。
这里是一个类似的stackoverflow问题: 签署一个Windows EXE文件
Linux并不需要扩展。 通常二进制文件只是没有一个。 要将它们标记为可执行文件,请在文件上设置+ x标志,这将授予文件执行权限。
OSX也不一定有扩展。 如果你想在Mac上安装你的程序,它将打包在一个文件夹(在Mac上这些不看起来像文件夹,他们看起来像程序,但在其他操作系统上这些文件夹显示)扩展.app 。
launch4j可以生成所有平台,Mac OSX,Linux和Windows的二进制文件。
“警报”问题是因为你的应用程序没有被签名。 签署申请表示将其封存起来,之后不能修改(可以修改,但会破坏封条)。 在OSX上,您可以获得开发人员证书并使用.app ( codesign -s "certname"和已安装的证书)上的codesign -s "certname" 。 在Linux上,您不会遇到这个问题,因为程序通常不会被签名(一个软件包管理器的软件包通常会被签名,安装后这些信息会丢失)。
在Windows上,您也可以购买证书。 在这样做并签署你的程序后,“警告”可能仍然会出现给用户的设置,但它会显示开发人员或公司名称,而不是未知的(未知只会出现如果没有签名或签名程序已修改后签字)。
运行它:java -jar [你的jar文件]
或者把它放到一个脚本文件中:myscript.sh设置执行权限:
> chmod ugo+x myscript
示例脚本:
#!/bin/bash $JAVA_HOME/bin/java -jar [jarfile]
然后运行./myscript.sh
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。