2012-03-05 79 views
2

我正在为Mac用户构建一个小型Java程序,在计算时它是绝对新手。因此,我想给他一个文件来执行,也许通过一个脚本。之前,我只给了.jar文件,它可以完美运行,但现在我必须添加VM参数(最大堆空间)。不幸的是,我并不熟悉OSX。到目前为止,我能够给.jar和包含文本Java:单击Mac可执行文件(包括虚拟机参数)

#!/bin/bash 

java -jar -ms128m -mx512m -jar file.jar 

然而,这给消息“无法执行,因为你没有适当的访问权限的文件”一.command文件。一种解决方案是在控制台中使用sudo,但恐怕这太复杂了。所以我的问题:

  • 我可以做一个.command或其他脚本运行Java .jar文件,而无需走到控制台?
  • 或者,我可以将.jar文件包装在某种Mac可执行文件中,包括VM参数吗?我发现了一个类似的Windows解决方案(Launch4j)。
  • 或者,有没有可能提供一个简单的邮件下载,运行java程序的可执行文件,但没有安装任何其他程序的另一种方式?

编辑:我没有无限制地访问Mac,所以我需要一个在每次更新.jar文件时都不需要Mac的解决方案。

非常感谢!

+0

chmod + x是你的朋友 – 2012-03-05 20:23:36

+0

该文件在linux中是可执行的(755),这是否传输到MAC?恐怕我不能要求用户做一个chmod(一个控制台已经太难以解释了) – tb189 2012-03-05 20:31:23

回答

2
  1. 如果您有一台Mac,则可以试用Jar Bundler。它带有XCode,或者你可以在这里找到https://developer.apple.com/downloads。有了这个应用程序,你可以做一个点击Mac可执行文件。

  2. 我不知道它是否可以使用Windows Eclipse版本。转到Main-Class打开上下文菜单并启动“导出”对话框。搜索Mac OS X应用程序包并按照步骤操作。

  3. 创建一个额外启动自己的Java“starter”类。您可以拨打ProcessBuilder这样的另一个罐子,如java -Xms1024M -Xmx1024M -jar app.jar

+0

恐怕我没有。我可以借用一个短期的开发目的,但我想找到一种方法,我也可以发送更新(即新的.jar文件)。不幸的是,每当程序发生变化时,我都可以在Mac上找到我的手。 – tb189 2012-03-05 20:44:02

+0

我看到了 - 这可能是一个问题。为我的答案增加了另一种方式。 – alexvetter 2012-03-05 21:14:04

+0

感谢您的更新!我在linux上,但它不在我的export-other中。这在搜索它时似乎不是一个插件,只是在Mac上运行eclipse时的标准功能,或者我错了吗?我可以安装这个应用程序包导出为eclipse插件吗? – tb189 2012-03-05 21:22:09

1

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

+0

只需确保: - 创建一个名为program.app的文件夹,创建一个子文件夹内容,包含文件信息。 plist with Java VMOptions -Xmx512m,将.jar添加到Contents文件夹中,然后?我需要添加其他任何键吗?你做什么来启动该计划? – tb189 2012-03-05 20:35:27

+0

我会从IntelliJ复制粘贴info.plist,并只替换特定于您的程序的部分。因此,您将拥有一个应用程序包,您只需点击并运行应用程序(就像任何其他Mac应用程序一样)。 – 2012-03-06 05:46:31