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);
}
}
当显式提及部署. javaws.jre.0.args=-Xmx512m时,在deployment.properties和512MB
中没有指定时,它应该打印大约96MB的maxMemory值(2 gbRAM)
热点Java实现的JVM内存参数只能在JVM启动/启动时通过命令行选项设置。在JVM启动之前或之后在系统属性中设置它们将无效。
你想做的事情根本行不通。
当任何Java代码能够运行时,更改堆大小设置都为时已晚。无论您使用java
命令运行代码、使用Web启动、使用小程序运行器、使用浏览器中的嵌入式JVM…还是任何其他方式,都是一样的。