Equinox Launcher 忽略 .ini 文件和 vmargs

Equinox Launcher ignores .ini file and vmargs

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

我目前正在使用此代码:

    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

提前致谢!

--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");
...