Exception in thread "main" java.lang.NoClassDefFoundError: org/joda/time/LocalTime at **.main

问题:

运行程序: java   hello/HelloWorld

出现错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/joda/time/LocalTime
    at hello.HelloWorld.main(HelloWorld.java:7)
Caused by: java.lang.ClassNotFoundException: org.joda.time.LocalTime
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

原因:

没有引入org.joda.time.LocalTime 所在的jar包(joda-time-2.9.2.jar)

解决:

  • ***/target/classes 目录运行如下命令

java -cp   ./joda-time-2.9.2.jar:.  hello/HelloWorld 

或者

java  -cp  joda-time-2.9.2.jar:  hello.HelloWorld         

(因为joda-time-2.9.2.jar 在当前目录,并且和顶级包名在同一级目录,所以   ./    和   .      可以省略)

注意:

./  为joda-time-2.9.2.jar 文件所在路径

.  为顶级包名所在路径(参考:https://blog.csdn.net/abcdu1/article/details/86693800

  • 在 ***/target/classes/hello 目录运行命令为

java -cp ../joda-time-2.9.2.jar:..  hello/HelloWorld

或者

java -cp ../joda-time-2.9.2.jar:..  hello.HelloWorld

附录:

HelloWorld.java :(注意 package  名)

package hello;

public class HelloWorld {
    public static void main(String[] args) {
        Greeter greeter = new Greeter();
        System.out.println(greeter.sayHello());
    }
}

Greeter.java

package hello;

public class Greeter {
    public String sayHello() {
        return "Hello world!";
    }
}

 

参考:

https://stackoverflow.com/questions/18093928/what-does-could-not-find-or-load-main-class-mean

https://stackoverflow.com/questions/21628284/java-lang-noclassdeffounderror-org-joda-time-localtime-at-hello-helloworld-main

你可能感兴趣的:(java,springboot)