2012-06-27 2 views
1

Нам нужно вручную установить переменные -Xmax и -Xmin Environment, но я хочу установить эти переменные из java-кода. Есть ли способ установить эти переменные с помощью java-кода.? Благодарю.Установите переменные JRE из кода Java

+0

"* Нам нужно ... *" Это домашнее задание тогда? Если это так, отметьте его как таковой. – user1329572

+1

Ответ - нет. См. Http://stackoverflow.com/questions/763295/setting-jvm-heap-size-at-runtime. –

+0

Мы имеем в виду меня и мою команду, и это не домашнее задание. Мне нужно установить эти переменные среды из графического интерфейса приложения. – ajkush

ответ

0

Я получил это решение для этой проблемы: -

 public static void main(String[] args) { 
    Properties prop = new Properties(); 
    try { 
     String path=System.getenv("APPDATA"); 
      path=path.substring(0,path.lastIndexOf('\\')+1)+"LocalLow\\Sun\\Java\\Deployment\\deployment.properties"; 
      System.err.println(path); 

      prop.load(new FileInputStream(path)); 
      String jreIndex = null; 
      Enumeration enuKeys = prop.keys(); 
      while (enuKeys.hasMoreElements()) { 
       String key = (String) enuKeys.nextElement(); 
       String value = prop.getProperty(key); 
       if(value.contains("1.6.0_26")){ 
        String[] st2 = key.split("\\."); 
        if(st2.length==5){ 
         jreIndex = st2[3]; 
        } 
       } 
      } 
      //SystemSettings SysConfigsettings = new SystemSettings(); 
      if(jreIndex != null){ 
      // if (SysConfigsettings.getValue(SystemSettings.JRE_HEAP_SIZE)) 
       { 
       prop.setProperty("deployment.javaws.jre."+jreIndex+".args", "-Xmx1024m"); 
       } 
      } 
      prop.store(new FileOutputStream(path), "UpdatedHeapSize"); 
      System.out.println("First : "+prop.getProperty("deployment.javaws.jre.0.args")); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

}

3

Вам нужно установить эти параметры из работающего Java-процесса? Я не считаю, что это возможно. Однако вы можете установить их на дочернем процессе из вызывающей Java-программы, например, через ProcessBuilder.

ProcessBuilder pb = new ProcessBuilder("myCommand", "-Xmax", value); 
pb.directory(new File("dir")); 
Process p = pb.start(); 
Смежные вопросы