繁体   English   中英

线程“ main”中的异常java.lang.NoClassDefFoundError:org / javatuples / Unit

[英]Exception in thread “main” java.lang.NoClassDefFoundError: org/javatuples/Unit

我已经在Eclipse项目中导入了javatuples-1.2.jar。 我这样做是为了运行Java Tuples Unit类程序。 以下是代码:

 package mynewpackage;
 import org.javatuples.Unit; 

 class Mynewclass2 { 
  public static void main(String[] args) 
   { 
    Unit<String> u 
        = new Unit<String>("This is demo text!"); 

    System.out.println(u); 
   } 
 } 

但是,在运行时出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/javatuples/Unit
    at mynewpackage.Mynewclass2.main(Mynewclass2.java:9)
Caused by: java.lang.ClassNotFoundException: org.javatuples.Unit
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 1 more

在引用下,我可以轻松地看到已成功添加了元组jar文件。 但是,以下是项目目录,引用中的jar,错误以及Eclipse中的整个程序。

带有Java元组的Eclipse项目目录

如何解决该问题并正确运行Java Tuples程序?

右键单击javatuples-1.2.jar>构建路径>添加到构建路径。

NoClassDefFoundError是Java运行时系统尝试加载类的定义时抛出的错误,并且该类定义不再可用。

欢迎发表评论。

您已经安装了Java 11 ...

当我(尝试)重现您的设置时:

  1. 我的日食(版本:2018-12(4.10.0),Win_64_jdk_11.0.2)要求我提供“模块名称”,并在创建“ Java项目”后添加src/module-info.java ,然后下载并添加lib/javatuples-1.2.jar构建路径。

  2. 当我尝试在代码(主类)中使用/导入它时-编译错误,并且自动更正建议我向模块信息中添加“ javatuples”模块:

点击率:

myproject / src / module-info.java

module myproject {
   requires javatuples;
}

之后,该程序已经可以运行,但是Eclipse警告

Name of automatic module 'javatuples' is unstable, it is derived from the module's file name.

解决此问题,可以运行(从命令行):

myproject>jar --file=lib/javatuples-1.2.jar --describe-module
No module descriptor found. Derived automatic module.

javatuples@1.2 automatic
requires java.base mandated
contains org.javatuples
contains org.javatuples.valueintf

因此,日食警告已经有点麻烦了: javatuples是“正确的”模块名称。

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM