Java:1点式Mac可执行文件,包括VM参数

Java:1点式Mac可执行文件,包括VM参数,java,macos,executable-jar,Java,Macos,Executable Jar,我正在为一个Mac用户构建一个小型Java程序,这个Mac用户在计算方面绝对是新手。因此,我想给他一个文件来执行,也许是通过一个脚本。以前,我只给出了.jar文件,它可以完美地运行,但现在我必须添加VM参数(最大堆空间)。不幸的是,我对OSX不太满意。到目前为止,我能够给出包含文本的.jar和.command文件 #!/bin/bash java -jar -ms128m -mx512m -jar file.jar 但是,这会显示消息“由于您没有适当的访问权限,文件无法执行”。一种解决方案是

我正在为一个Mac用户构建一个小型Java程序,这个Mac用户在计算方面绝对是新手。因此,我想给他一个文件来执行,也许是通过一个脚本。以前,我只给出了.jar文件,它可以完美地运行,但现在我必须添加VM参数(最大堆空间)。不幸的是,我对OSX不太满意。到目前为止,我能够给出包含文本的.jar和.command文件

#!/bin/bash

java -jar -ms128m -mx512m -jar file.jar
但是,这会显示消息“由于您没有适当的访问权限,文件无法执行”。一种解决方案是在控制台中使用sudo,但恐怕这太复杂了。因此,我的问题是:

  • 我可以让一个.command或其他脚本运行一个java.jar文件而不去控制台吗
  • 或者,我可以将.jar文件包装在某种Mac可执行文件中,包括VM参数吗?我为windows找到了类似的解决方案(Launch4j)
  • 或者,有没有另一种方法可以提供一个简单的可下载邮件的可执行文件,运行java程序,但不安装任何其他程序
编辑:我没有对Mac的无限访问权,所以我需要一个在每次更新.jar文件时不需要Mac的解决方案


非常感谢

您可以非常轻松地创建Mac可执行文件。你应该创建一个扩展名为.app的目录,并将文件放在那里。它应该包含一个名为Contents的子目录,您应该在其中放置一个名为Info.plist的文件,您可以在其中指定JVM参数和许多其他内容。例如,您可以使用IntelliJ社区版软件包

  • 如果你有Mac电脑,你可以试试。它附带XCode,或者您可以在这里找到它。使用此应用程序,您可以创建一个单击1次的Mac可执行文件

  • 我不知道Windows Eclipse版本是否可以。转到Main类打开上下文菜单并启动导出对话框。搜索Mac OS X应用程序捆绑包,然后按照步骤进行操作

  • 创建一个额外的Java“starter”类,该类将再次启动。您可以使用
    ProcessBuilder
    调用另一个类似这样的jar
    java-Xms1024M-Xmx1024M-jar-app.jar


  • 该文件在linux中是可执行的(755),是否会传输到mac?恐怕我不能要求用户做一个chmod(控制台已经很难解释了)来确保:-创建一个名为program.app的文件夹,创建一个子文件夹Contents,包含一个带有JavaVMOptions-Xmx512m的文件info.plist,在Contents文件夹中添加.jar,然后?我需要添加其他密钥吗?您如何启动该程序?我将从IntelliJ复制paste info.plist并仅替换特定于您的程序的部件。因此,您将拥有一个应用程序包,您只需单击并运行它(与任何其他Mac应用程序一样)。我恐怕没有。我可以借用一个用于短期开发目的,但我想找到一个也可以发送更新的方法(即一个新的.jar文件)。不幸的是,我不可能在每次程序更改时都使用mac电脑。我明白了,这可能是个问题。为我的答案添加了另一种方式。谢谢更新!我在linux上,但它不在我的导出文件中。在搜索它时,这似乎不是一个插件,只是在mac上运行eclipse时的标准功能,还是我错了?我可以将这个应用程序包导出作为eclipse插件安装吗?看起来它只对eclipse for Mac OS可用。添加了另一种方式。:-)