当前位置: 首页 > 知识库问答 >
问题:

Jar文件可以从Gradle run中运行,但在Eclipse中运行时会出现NoClassDefoundError

吴均
2023-03-14

我使用Gradle构建了一个jar文件。它在“Gradle Run”中运行得很好,但是当我在Eclipse中运行它时(运行->外部工具->外部工具配置),我在一个Spring类上得到了NoClassDefoundError。

这是大楼。格雷德尔:

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'application'
mainClassName = 'com.ii.mainClass'

repositories {
    mavenCentral()
 }

jar {
     manifest {
         attributes 'Main-Class': 'com.ii.mainClass'
    }
 }
 sourceCompatibility = 1.7
 targetCompatibility = 1.7

 dependencies {
      compile 'com.fasterxml.jackson.core:jackson-annotations:2.6.1'
      compile 'com.fasterxml.jackson.core:jackson-core:2.6.1'
      compile 'com.fasterxml.jackson.core:jackson-databind:2.6.1'
      compile 'org.springframework:spring-beans:4.2.0.RELEASE'
      compile 'org.springframework:spring-context:4.2.0.RELEASE'
      compile 'org.springframework:spring-core:4.2.0.RELEASE'
      compile 'org.springframework:spring-expression:4.2.0.RELEASE'
      compile 'org.springframework.xd:spring-xd-tuple:1.0.4.RELEASE'
   }

我查看了jar文件,它没有依赖的jar,这就是为什么在Eclipse中运行时出现NoClassDefinition错误的原因。我也尝试过在本地包含这些JAR,但这并不能解决问题,有人能让我知道如何在Eclipse中运行吗?

  dependencies {   
       compile fileTree(dir: 'lib', include: ['*.jar'])
   }

共有1个答案

阳德润
2023-03-14

在将依赖项添加到build.gradle中时,需要从命令行gradle eclipse来将新的JAR放到.classpath中,这是eclipse项目配置。如果您在执行此操作时运行了eclipse,则需要刷新项目,您将看到新的依赖项显示出来。可能有一个用于eclipse的插件或其他东西,它允许您在IDE中完成整个过程。

 类似资料:
  • 问题内容: 我在将当前项目提取到可执行jar文件时遇到问题。当我在日食中按下运行按钮时,一切正常,但是当我这样做时 然后启动.jar文件;我唯一得到的是带有灰色画布的窗口。它应该启动我编写的游戏(spaceInvaders)。 这是我上载项目的github的链接。我真的不知道错误在哪里,在哪里看。在我的代码中?在我安装的JRE / JDK中?创建罐子时我做错什么了吗? 请帮忙 -。- 问题答案:

  • 我使用kotlin中的EclipsePAHOMQTT库和IntellijIDE中的Gradle创建了一个小型mqtt应用程序。当通过Intellij运行它时,它运行良好,但是当我构建它并运行创建的jar文件时,我会得到一个错误。 从我看到的其他问题来看,这似乎与类路径有关,但我不确定如果这确实是问题所在,需要做什么,因为我使用的是gradle而不是jar文件作为库。 我正在学习这个教程 这是我的档

  • 导出的jar文件有问题。当我在Eclipse中运行项目时,它运行得很好,但是当我从控制台作为导出的jar运行它时,我收到以下错误消息: 代码如下: 我执行该方法的语法是

  • 我在尝试导出独立应用程序时遇到问题。 当我使用eclise执行它时,它运行正常,但当我试图导出到可运行的jar时,它会给我一些错误。 我的坚持。xml看起来像 它位于src/META-INF/persistence。xml 从终端运行时得到的堆栈跟踪是: 在爪哇。朗,反思一下。方法在组织中调用(未知源)。日食jdt。内部的jarinjarloader。罐式装载机。main(jarsrcloader

  • 所以一切都很好,就像2到3周前一样,突然我所有的jar文件都无法通过双击打开 我检查了我的注册表,但一切正常,关联的. jar应用程序可以使用javaw运行,但我仍然无法双击运行可执行的. jar文件 我可以用javaw -jar文件名在cmd中运行它们.jar但它不适用于我的世界,我不能用那个cmd运行我的世界,我想让它,所以每个可执行文件.jar文件都可以打开双击 我的 java 命令在 cm