Intellij 插件中的 java.lang.NoClassDefFoundError
Posted
技术标签:
【中文标题】Intellij 插件中的 java.lang.NoClassDefFoundError【英文标题】:java.lang.NoClassDefFoundError in Intellij Plugin 【发布时间】:2019-05-14 19:56:26 【问题描述】:我正在尝试为 Intellij 构建一个插件,但每次我的代码指向另一个模块中的类或外部库时,我都会在运行时收到 java.lang.NoClassDefFoundError
。
通过runIde
在我的测试和沙盒中一切正常。
我还设法通过创建一个新项目来重现该错误,该项目只有一个动作和一个带有类和空方法的模块。
根等级:
构建脚本 ext.kotlin_version = '1.2.31' 存储库 mavenCentral() 依赖 类路径“org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” 插件 id 'org.jetbrains.intellij' 版本 '0.3.12' 组“测试” 版本“1.0-SNAPSHOT” 应用插件:'kotlin' 存储库 mavenCentral() 依赖 编译“org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version” 编译项目(':testmodule') 编译科特林 kotlinOptions.jvmTarget = "1.8" 编译TestKotlin kotlinOptions.jvmTarget = "1.8" 智能 版本“2018.1.6” 补丁插件Xml 更改备注 """ 在此处添加更改说明。可以使用大多数 html 标记"""动作:
一揽子行动 导入 com.intellij.openapi.actionSystem.* 导入包.OtherModuleClass 类 TestAction : AnAction() 覆盖有趣的 actionPerformed(e: AnActionEvent?) OtherModuleClass().otherModuleMethod()其他模块类:
包包 类其他模块类 有趣的 otherModuleMethod()【问题讨论】:
> java.lang.NoClassDefFoundError 在什么类上?这门课是公开的吗? @AlexanderZolotov 是公开的,我的代码编译,我的单元测试运行,在沙箱中启动插件工作。问题是当我获取生成的 .jar 文件并将其安装在 IDE 上进行实际测试时 【参考方案1】:我发现了我的问题。
我在我的 IDE 中安装了 build/libs
中的 jar
,而不是 build/distributions
中的 zip
。
【讨论】:
【参考方案2】:如果其他人正在寻找类似问题的解决方案,我通过在 build.gradle 中添加 java 插件来修复它
apply plugin "java"
【讨论】:
以上是关于Intellij 插件中的 java.lang.NoClassDefFoundError的主要内容,如果未能解决你的问题,请参考以下文章
使用intellij的idea集成开发工具中的git插件(转)