import java.io.*;
import java.util.*;
public class ReadPropertiesFile {
public static void main(String[] args)throws Throwable{
Properties prop = new Properties();
prop.load(new FileInputStream(
"C:\\Windows\\Sun\\Java\\Deployment\\deployment.properties"));
String Xmx = prop.getProperty("deployment.javaws.jre.0.args",
"This is Default");
if(Xmx!="This is Default")
{
System.setProperty("javaplugin.vm.options","\"Xmx\"");
}
long maxMemory = Runtime.getRuntime().maxMemory();
System.out.println("JVM maxMemory also equals to maximum heap size of JVM: "
+ maxMemory);
}
}
当明确提及maxMemory around 96MB(for 2 gb RAM)
deployment.properties AND 512MB
中未指定任何内容时,应打印deployment.javaws.jre.0.args=-Xmx512m.But in both case i am getting the result 259522560
的值
答案 0 :(得分:4)
只有在启动/启动JVM时,才能通过命令行选项设置Hotspot Java实现的JVM内存参数。在启动JVM之前或之后在系统属性中设置它们将不起作用。
你想做的事情根本行不通。
当任何 Java代码能够运行时,太晚来更改堆大小设置。无论是使用java
命令运行代码,使用web start,使用applet运行程序,在浏览器中使用嵌入式JVM ...... 还是任何其他方式,都是一样的。< / p>