我是Gradle構建工具的初學者。我成功編譯HelloWorld.java代碼,但試圖運行時,它提供以下錯誤:java.lang.NoClassDefFoundError:試圖運行程序時在hello.HelloWorld.main上的org/joda/time/LocalTime
Exception in thread "main" java.lang.NoClassDefFoundError: org/joda/time/LocalTime at
hello.HelloWorld.main (HelloWorld.java:7)
我HelloWorld.java代碼:
package hello;
import org.joda.time.LocalTime;
public class HelloWorld {
public static void main(String[] args) {
LocalTime currentTime = new LocalTime();
System.out.println("The current local time is: " + currentTime);
Greeter greeter = new Greeter();
System.out.println("greeter.sayHello()");
}
}
迎賓類只是其中包含的sayHello類()方法來打印「Hello World」消息。
搖籃的的build.gradle代碼:
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile "joda-time:joda-time:1.5"
}
請找出問題和答覆...
在此先感謝。
你不告訴我們你是如何運行您的程序。你意識到joda-time jar必須在類路徑中,對吧? –
我試圖通過命令提示符運行我的程序作爲「java -cp build/classes/main hello.HelloWorld」是的,我意識到joda-time jar在運行時缺少,但是在構建過程中卻說下載了jar。現在我無法找到的問題在哪裏。 – niteshpandey
記錄:gradle通過生成類和包含這些類的jar來構建應用程序。它將必要的庫下載到它的緩存中以便能夠構建它。但爲了運行你的應用程序,你必須明確地在classpath中添加所有需要的運行時庫,使用'java -cp yourJar.jar:/ path/to/joda-time.jar'。 –