gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 08:44:35 24 4
gpt4 key购买 nike

我正在编写一个 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 类方法。

最佳答案

一种方法是创建自己的 JavaArgumentsTab 的子类并覆盖 setDefaults .

setDefaults javadoc 是:

Initializes the given launch configuration with default values for this tab. This method is called when a new launch configuration is created such that the configuration can be initialized with meaningful values. This method may be called before this tab's control is created.

例如:

import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.jdt.debug.ui.launchConfigurations.JavaArgumentsTab;
import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;

public class CustomJavaArgumentsTab extends JavaArgumentsTab {

@Override
public void setDefaults(ILaunchConfigurationWorkingCopy config) {
// start with the normal defaults for this tab...
super.setDefaults(config);
// ... then set/override them with what I want
// ATTR_VM_ARGUMENTS is defaulted to null, provide my desired default
config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, "my desired default");
}
}

正如您从这个屏幕截图中看到的,“我想要的默认值”默认出现在我的启动配置中:

vmargs

关于java - Eclipse 插件如何以编程方式传递 Java VM 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33719796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com