Eclipse插件如何以编程方式传递Java VM参数

Eclipse插件如何以编程方式传递Java VM参数,java,eclipse,eclipse-plugin,eclipse-rcp,jvm-arguments,Java,Eclipse,Eclipse Plugin,Eclipse Rcp,Jvm Arguments,我正在编写一个Eclipse插件,它实际上是一个分析器,使用Java代理jar文件对代码进行插入 我已经编程了一个自定义的启动配置,并为此定义了启动配置选项卡组。他们工作良好,运行本地Java项目。我想让我的插件在JavaArgumentsTab的vm参数中自动传递Java代理jar文件,以便可以检测代码 我的启动配置代码 public class MyJavaDelegate extends JavaLaunchDelegate { @Override public void

我正在编写一个Eclipse插件,它实际上是一个分析器,使用Java代理jar文件对代码进行插入

我已经编程了一个自定义的启动配置,并为此定义了启动配置选项卡组。他们工作良好,运行本地Java项目。我想让我的插件在JavaArgumentsTab的vm参数中自动传递Java代理jar文件,以便可以检测代码

我的启动配置代码

public class MyJavaDelegate extends JavaLaunchDelegate
{
    @Override
    public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor)
            throws CoreException
    {
        super.launch(configuration, mode, launch, monitor);
        System.out.println("Custom Lanucher Launched");
    }
}
我的启动配置选项卡组代码

public class MyJavaTabGroup extends AbstractLaunchConfigurationTabGroup
{

    JavaMainTab jmTab;
    JavaArgumentsTab jaTab;
    JavaJRETab jjTab;
    CommonTab cTab;

    @Override
    public void createTabs(ILaunchConfigurationDialog dialog, String mode)
    {
        jmTab = new JavaMainTab();
        jaTab = new JavaArgumentsTab();
        jjTab = new JavaJRETab();
        cTab = new CommonTab();

        setTabs(new ILaunchConfigurationTab[] { jmTab , jaTab, jjTab, cTab });      
    }

}

由于JavaArgumentsTab接受vm参数,我试图通过代码设置vm参数,但我找不到JavaArgumentsTab类中允许我使用的任何方法。

一种方法是创建自己的和重写的子类

setDefaults
javadoc是:

使用的默认值初始化给定的启动配置 这个标签。在启动新的启动配置时调用此方法 已创建,以便可以使用有意义的 价值观在调用此选项卡的控件之前,可以调用此方法 创造

例如:

import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
导入org.eclipse.jdt.debug.ui.launchConfigurations.JavaArgumentsTab;
导入org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
公共类CustomJavaArgumentsTab扩展了JavaArgumentsTab{
@凌驾
公共无效设置默认值(ILaunchConfigurationWorkingCopy配置){
//从该选项卡的正常默认值开始。。。
super.setDefaults(config);
//…然后用我想要的设置/覆盖它们
//ATTR_VM_参数默认为null,请提供所需的默认值
setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_参数,“我想要的默认值”);
}
}
从这个屏幕截图中可以看到,“我想要的默认设置”默认显示在我的启动配置中: