Equinox Launcher忽略.ini文件和vmargs

时间:2015-10-12 13:08:56

标签: java eclipse processbuilder equinox

我想用另一个java程序中的equinox启动器启动eclipse。问题是启动器似乎忽略了我的.ini文件,其中包含语言设置或MaxPermSize。

我目前正在使用此代码:

    ArrayList<String> list = new ArrayList<String>();
    list.add("java");
    list.add("-jar");
    list.add("path/to/org.eclipse.equinox.launcher_*.jar");
    list.add("-data");
    list.add(workspaceLocation);
    list.add("-configuration");
    list.add(configurationLocation);
    //doesn't work
    list.add("--launcher.ini");
    list.add("path/to/test.ini");
    //doesn't work as well
    list.add("-vmargs");
    list.add("-XX:MaxPermSize=256m");
    try {
      ProcessBuilder processBuilder = new ProcessBuilder(list);
      Process debugProcess = processBuilder.start();
    } catch (IOException e) {
      e.printStackTrace();
    }

和.ini文件:

-vmargs
-Xms256m
-Xmx3072m
-Dosgi.nl=en_US
-XX:MaxPermSize=256m

提前致谢!

1 个答案:

答案 0 :(得分:1)

--launcher.xxxx选项仅在您使用Eclipse启动程序可执行文件启动RCP(即eclipse命令或类似命令)时使用。

由于您直接调用java命令,因此需要在命令行中指定所有内容。

java命令的VM参数应该在-jar选项之前,并且您不能使用-vmargs。所以:

list.add("java");
list.add("-XX:MaxPermSize=256m");
list.add("-jar");
list.add("path/to/org.eclipse.equinox.launcher_*.jar");
...