gpt4 book ai didi

java - 如何制作启动类的 Eclipse 调试启动器

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:59 25 4
gpt4 key购买 nike

我正在尝试制作一个可以以编程方式启动的 Eclipse 启动配置,如果您愿意,可以构建一个自定义调试器。

我已经有了一个 org.eclipse.debug.core.launchConfigurationTypes 扩展,还有 .core.launchDelegates.ui.launchConfigurationTabGroups.core.sourcePathComputers 扩展。

我有一个执行以下代码的按钮:

ILaunchManager mgr = DebugPlugin.getDefault().getLaunchManager();
ILaunchConfigurationType lct = mgr.getLaunchConfigurationType(IOpcodeConstants.LAUNCH_CFG_TYPE);
ILaunchConfiguration[] lcs = mgr.getLaunchConfigurations(lct);

for (int i = 0; i < lcs.length; ++i) {
if (lcs[i].getName().equals("Opcode")) {
lcs[i].delete();
break;
}
}

ILaunchConfigurationWorkingCopy wc = lct.newInstance(null, "Opcode");

Set<String> modes = new HashSet<String>();
modes.add(ILaunchManager.DEBUG_MODE);
wc.setModes(modes);
wc.setPreferredLaunchDelegate(modes, "nz.net.fantail.studio.OpcodeLaunchDelegate");

ILaunchConfiguration lc = wc.doSave();
lc.launch(ILaunchManager.DEBUG_MODE, null);

我的启动委托(delegate)具有以下代码:

@Override
public void launch(ILaunchConfiguration configuration, String mode,
ILaunch launch, IProgressMonitor monitor) throws CoreException {

ManagementClient client = new ManagementClient("localhost", 6961);

if (mode.equals(ILaunchManager.DEBUG_MODE)) {
IDebugTarget target = new OpcodeDebugTarget(launch, client);
launch.addDebugTarget(target);
}
}

一切正常,直到 get 尝试加载 ManagementClient 类并抛出 NoSuchClassDefException。我怀疑这是因为它在与实际应用程序不同的环境中启动,因此在其类路径中没有包含该类的 .jar。

有谁知道如何解决这个问题?干杯!

最佳答案

它找不到哪个类,ManagementClient 还是其他?也许在您的启动配置中,您需要自己设置目标类路径。

// customize the classpath
wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, false);
wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, classPathList);

以下是一些可能有用的其他设置:

 wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, 
projectName);
wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME,
targetMainClass);
wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS,
programArgs);
wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, jvmArgs);

关于java - 如何制作启动类的 Eclipse 调试启动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1857466/

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