我正在为学校开展一个项目,我需要Jackson库来解析json文件。我在我的gradle脚本中包含了库,如下所示:
...
dependencies {
compile 'org.codehaus.jackson:jackson-core-asl:1.9.0'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.0'
compile 'org.hibernate:hibernate-validator:4.2.0.Final'
testCompile 'junit:junit:4.9'
}
...
我还将class文件夹添加到classpath中。 使用gradle构建是可以的,它实际上下载了库和所有,但是当我运行我的程序时(从带有> java name.of.package.Main的cmd行),它说:
> Exception in thread "main" java.lang.NoClassDefFoundError:
> org/codehaus/jackson/map/JsonMappingException
> at java.lang.Class.getDeclaredMethods0(Native Method)
> at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
> at java.lang.Class.getMethod0(Unknown Source)
> at java.lang.Class.getMethod(Unknown Source)
> at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
> at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) Caused by: java.lang.ClassNotFoundException:
> org.codehaus.jackson.map.JsonMappingException
> 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)
> ... 6 more
但我注意到当我将gradle文件中的两个库添加到classpath时,一切正常..
有人可以告诉我是否应该手动将库添加到类路径中?那么在这种情况下gradle的用途是什么..
非常感谢!
答案 0 :(得分:3)
Gradle没有设置CLASSPATH
环境变量(如果这是你的意思)。 Application plugin允许您使用gradle run
运行命令行应用程序。该插件还可以创建用于运行应用程序的shell脚本。在这两种情况下,正确的类路径都将传递给JVM。