Java代码运行Mac终端命令来调整JVM内存

时间:2012-11-03 07:48:48

标签: java jvm

我正在使用JavaFx 2.2.3和jdk 1.7.0_09开发应用程序。此应用程序将在Windows和Mac Osx上运行。 问题是我失去记忆力。 我知道-Xms和-Xmx用于调整JVM内存。但是要求我们必须使用java代码设置JVM内存,因为这是一个桌面应用程序,因此我们无法在每个系统上调整JVM。

现在我找到了Windows的解决方案

proc = Runtime.getRuntime()。exec(“cmd.exe / c java -Xms250m -Xmx1024m -jar \”application.jar \“/ n”);

通过使用此代码,我可以在启动Application jar之前增加JVM内存。 但这只是Windows的解决方案。

任何人都可以告诉类似的Mac代码。

2 个答案:

答案 0 :(得分:1)

首先,您需要找到安装java的位置。 Apple的这份文件解释了如何做到这一点 - http://developer.apple.com/library/mac/qa/qa1170/_index.html

String JAVA = ...

proc = Runtime.getRuntime()。exec(JAVA +“ - Xms250m -Xmx1024m -jar”application.jar“);

所以让我们假设Java位于'/ usr / bin / java',然后是:

proc = Runtime.getRuntime()。exec(“/ usr / bin / java -Xms250m -Xmx1024m -jar application.jar”);

请注意,如果您需要捕获'proc'的输出,那么您可以执行以下操作:

DataInputStream in = new DataInputStream(proc.getInputStream());
while ((ls_str = ls_in.readLine()) != null) {
  // Do something with the output from proc
  System.out.println(ls_str);
}

答案 1 :(得分:0)

您无法为已经运行的JVM增加内存。标准方法是提供添加JVM参数的启动脚本。或者,如果您使用webstart,我认为可以在jnlp文件中配置堆大小。