2015-11-12 50 views
0

我已經在項目設置中使用intellij想法添加groovy lib項目中創建了一個我的groovy項目的jar。但是當我運行那個罐子後發生異常如何在intellij indea中創建一個groovy項目的jar

Exception in thread "main" java.lang.NoClassDefFoundError: groovy/lang/GroovyObject 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$100(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: groovy.lang.GroovyObject 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 13 more 

可能是問題是創建jar。如何在intellij Idea中創建一個groovy項目的jar。

+0

你需要運行配置了'classpath'的jar。 – Opal

+0

是否總是需要運行配置了classpath的jar。我想運行只需雙擊罐子。 –

+0

所以你需要準備所謂的脂肪罐。 – Opal

回答

-1

在Intellij Idea中使用gradle支持。在IntelliJ IDEA的您的項目在這裏描述

  1. 一是積極支持的gradle:https://www.jetbrains.com/idea/help/working-with-gradle-projects.html

  2. 移動源到默認gradle這個目錄樹。 groovy源文件必須在src/main/groovy/...src/test/groovy/...的測試源中移動。 (PS:您可以配置gradle以查找其他目錄中的源而不是默認的源,但移動源更容易和更安全)。

    enter image description here

    在截圖中看到的Java源代碼目錄樹。您改爲使用groovy

  3. 在項目的根目錄中添加一個gradle構建文件。

    基本gradle這個文件(必須命名的build.gradle)可以看起來像這樣:

    buildscript { 
        repositories { 
         mavenCentral() 
        } 
        dependencies {} 
    } 
    
    apply plugin: 'groovy' 
    apply plugin: 'java' 
    apply plugin: 'idea' 
    
    jar { 
        baseName = 'your_project_name' 
        version = '0.1.0' 
        manifest { 
         attributes("Build-Time": new Date().format("yyyy-MM-dd HH:mm:ss"), 
           "Build-Jdk": System.getProperty("java.version"), 
           "Built-By": System.getProperty("user.name"), 
           "Created-By": "Gradle", 
         ) 
        } 
    } 
    
    repositories { 
        mavenCentral() 
    } 
    // java version dependency 
    sourceCompatibility = 1.7 
    targetCompatibility = 1.7 
    
    dependencies { 
        // your local jar dependency 
        compile files('./lib/your_jar.jar') 
        // groovy 
        compile 'org.codehaus.groovy:groovy-all:2.1.9' 
    
        //other useful dependencies 
        compile 'log4j:log4j:1.2.17' 
        testCompile group: 'junit', name: 'junit', version: '4.11' 
    } 
    
    task wrapper(type: Wrapper) { 
        gradleVersion = '2.3' 
    } 
    
  4. 現在使用gradle這個插件的IntelliJ中enter image description here

  5. 德恩的IntelliJ光潔度建築物,你可以找到你的可執行jar在build/libs/your_project_name.jar

相關問題