Eclipse插件如何以编程方式传递Java VM参数
我正在编写一个Eclipse插件,它实际上是一个分析器,使用Java代理jar文件对代码进行插入 我已经编程了一个自定义的启动配置,并为此定义了启动配置选项卡组。他们工作良好,运行本地Java项目。我想让我的插件在JavaArgumentsTab的vm参数中自动传递Java代理jar文件,以便可以检测代码 我的启动配置代码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
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_参数,“我想要的默认值”);
}
}
从这个屏幕截图中可以看到,“我想要的默认设置”默认显示在我的启动配置中: