我在intellij中创建了一个我的groovy项目罐子,在项目设置中添加了groovy lib。但是当我在发生异常后运行那个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 :(得分:-1)
使用Intellij Idea中的gradle支持。
此处所述的Intellij Idea 项目的第一个有效gradle支持:https://www.jetbrains.com/idea/help/working-with-gradle-projects.html
将您的源移动到默认的gradle目录树。必须在src/main/groovy/...
中移动常规源文件,并在src/test/groovy/...
中移动测试源。 (PS:您可以将gradle配置为在默认值以外的其他目录中查找源,但移动源更容易,更安全。)
在屏幕截图中,您会看到java源的目录树。您改为使用groovy
。
在项目的根目录中添加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'
}
Wenn Intellij完成构建,你可以在build/libs/your_project_name.jar