我正在使用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代码。
答案 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文件中配置堆大小。