我正在使用 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/