【问题标题】:Set JRE variables from java code从 Java 代码设置 JRE 变量
【发布时间】:2012-06-29 06:02:45
【问题描述】:

我们需要手动设置 -Xmax 和 -Xmin 环境变量,但我想从 java 代码中设置这些变量。有没有办法用java代码设置这些变量。?谢谢。

【问题讨论】:

  • "我们需要..." 那么这是作业吗?如果是这样,请将其标记为这样。
  • 答案是否定的。见stackoverflow.com/questions/763295/…
  • 我们的意思是我和我的团队,这不是家庭作业。我需要从应用程序 GUI 设置这些环境变量。

标签: java


【解决方案1】:

您需要从正在运行的 Java 进程中设置这些设置吗?我不相信这是可能的。但是,您可以在调用 Java 程序的子进程上设置它们,例如通过 ProcessBuilder

ProcessBuilder pb = new ProcessBuilder("myCommand", "-Xmax", value);
pb.directory(new File("dir"));
Process p = pb.start();

【讨论】:

    【解决方案2】:

    我得到了这个问题的解决方案:-

         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();
        }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-10
      • 1970-01-01
      • 2021-01-22
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-17
      相关资源
      最近更新 更多