我想用另一个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
提前致谢!
答案 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");
...