Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Intellij gradle项目中运行主类时发生ClassNotFoundException_Java_Intellij Idea_Gradle - Fatal编程技术网

Java 在Intellij gradle项目中运行主类时发生ClassNotFoundException

Java 在Intellij gradle项目中运行主类时发生ClassNotFoundException,java,intellij-idea,gradle,Java,Intellij Idea,Gradle,当我尝试使用IDEA Intellij选项中的运行配置在gradle项目中运行main方法时,我得到如下异常: 15:12:03:正在执行外部任务“运行”。。。 :compileJava最新版本 :processResources是最新的 :最新课程 线程“main”java.lang.NoClassDefFoundError中出现异常:com/google/gson/GsonBuilder 位于pl.edu.agh.flowshop.utils.ConfigReader.getMachines

当我尝试使用IDEA Intellij选项中的运行配置在gradle项目中运行
main
方法时,我得到如下异常:

15:12:03:正在执行外部任务“运行”。。。
:compileJava最新版本
:processResources是最新的
:最新课程
线程“main”java.lang.NoClassDefFoundError中出现异常:com/google/gson/GsonBuilder
位于pl.edu.agh.flowshop.utils.ConfigReader.getMachinesConfig(ConfigReader.java:46)
位于pl.edu.agh.flowshop.utils.ConfigReader.createModel(ConfigReader.java:30)
位于pl.edu.agh.flowshop.Experiment.main(Experiment.java:25)
原因:java.lang.ClassNotFoundException:com.google.gson.GsonBuilder
位于java.net.URLClassLoader.findClass(URLClassLoader.java:381)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 3个以上
这让我很烦恼,因为如果我只是从相同的配置创建可运行的jar,一切都可以正常工作。我尝试过重新构建gradle项目以及“使缓存失效/重新启动”选项,但都没有效果

我的build.gradle文件:

group 'pl.edu.agh'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'application'

sourceCompatibility = 1.7
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
sourceSets.main.java.srcDirs = ['src/main/java']
mainClassName = 'pl.edu.agh.flowshop.Experiment'

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    compile group: 'nz.ac.waikato.cms.weka', name: 'weka-stable', version: '3.6.6'
    compile group: 'commons-io', name: 'commons-io', version: '2.4'
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
    compile group: 'org.apache.commons', name: 'commons-math3', version: '3.6'
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.5'
    compile group: 'com.google.guava', name: 'guava', version: '19.0'
    compile group: 'com.google.code.gson', name: 'gson', version: '2.6.2'
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.5'
    compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.5'
    compile name:'piqle'
}

jar {
    manifest {
        attributes(
                'Implementation-Title': project.name,
                'Implementation-Version': version,
                'Built-By': System.getProperty('user.name'),
                'Built-Date': new Date(),
                'Built-JDK': System.getProperty('java.version'),
                "Main-Class": mainClassName
        )
    }
    from {
        configurations.compile.collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
}

Gradle和IntelliJ IDEA还不是一对好夫妻。尝试以下方法:(1)打开Gradle项目选项卡(通常在右侧栏上),(2)点击刷新所有Gradle项目。我认为您的依赖项在IDE中不可用。它已经存在了,但它什么也没有做。您好,您解决了这个问题吗?