java - Equinox Launcher 忽略 .ini 文件和 vmargs

标签 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

提前致谢!

最佳答案

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

既然您正在调用 java直接命令您将需要在命令行上指定所有内容。

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

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

关于java - Equinox Launcher 忽略 .ini 文件和 vmargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33081977/

相关文章:

java - Linux 从 Java 控制台应用程序中杀死 Java 进程

java - 无法通过使用java执行shell脚本来创建文件夹

java - 计算字符串中辅音的数量

java - 错误 : type List does not take parameters

java - 如何将 Datepicker-date 转换为 Java.util.Date?

java - 读入文件以创建二维数组单词搜索难题并解决

java - 如何在Eclipse中实现这样的格式化?

java - hadoop源代码中的命令以获取 map 时间并减少时间

java - 用 Java 将用户输入发送到控制台

java - Eclipse输入快捷方式跳转太远