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

标签 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");

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

任何人都可以告诉 Mac 上类似的代码吗?

最佳答案

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

字符串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);
}

关于用于运行 Mac 终端命令来调整 JVM 内存的 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13207149/

相关文章:

java - 是否可以解耦 Eclipse 的代码索引功能?

java - 我在哪里可以在 Ubuntu 机器上配置 Ant 1.8 的环境变量?

java - 显示当前在 JVM 中运行的所有线程组和线程

java - 在 Android Dalvik VM 中加载 java.util.logging.LogManager 的类初始化问题

java - 在几乎不改变执行顺序的情况下,如何分配变量会导致严重的性能下降?

java - JFrame 太小并且 pack() 似乎不起作用

Java代码问题: Capping an amount

java - 使用 SQL 查询插入和更新数据......那么为什么我们需要 doGet、post 和 put 方法

tomcat - Tomcat下应用运行的环境变量

java - 抽象类和接口(interface)在 JVM 中的存储方面有什么区别