如何在终端Intellij SDK中运行命令

问题描述 投票:0回答:1

我想创建 RunConfiguration,它将在集成终端及其提供中运行命令。我所说的“提供者”一词是指 powershell.exe 或 cmd.exe。我找到了如何使用 GlobalCommandLine 或 PtyCommandLine 运行命令行,但当我想使用 cmd.exe 或 powershell.exe 提供程序运行命令时,它会创建进程。我找到了奇怪的类 ShTerminalRunner 的新答案,但它使用位于 org.jetbrains.plugins.terminal 包中的 ShellTerminalWidget,我通过在 build.gradle.kts 文件中的插件中添加“终端”来访问那里:

plugins.set(listOf(
    "terminal"
))

但是运行后我收到错误:

java.lang.NoClassDefFoundError: org/jetbrains/plugins/terminal/TerminalToolWindowManager
    at code.sh.ShTerminalRunner.run(ShTerminalRunner.kt:29)
    at code.sh.runconfig.FlowRunConfiguration$getState$1.startProcess(FlowRunConfiguration.kt:29)
    at com.intellij.execution.configurations.CommandLineState.execute(CommandLineState.java:61)
    at com.intellij.execution.runners.DefaultRunProgramRunner$execute$1.invoke(DefaultRunProgramRunner.kt:29)
    at ... stack trace
Caused by: java.lang.ClassNotFoundException: org.jetbrains.plugins.terminal.TerminalToolWindowManager PluginClassLoader(plugin=PluginDescriptor(name=Pon, id=code.sh, descriptorPath=plugin.xml, path=~\Documents\IdeaProjects\Pon\build\idea-sandbox\plugins\Pon, version=1.0-SNAPSHOT, package=null, isBundled=false), packagePrefix=null, state=active)
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:156)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
    ... 46 more

编辑:我的代码是从 https://github.com/JetBrains/intellij-community/blob/master/plugins/sh/terminal/src/com/intellij/sh/run/terminal/ShTerminalRunner.java 复制粘贴的

intellij-plugin
1个回答
0
投票

和往常一样,我的错误是由于疏忽造成的。我只是忘记将标签添加到plugin.xml,我从这里理解它

添加此标签后:

<depends>org.jetbrains.plugins.terminal</depends>

我的问题解决了: image of result

© www.soinside.com 2019 - 2024. All rights reserved.