运行 jar 文件时出错

运行 jar 文件时出错

我在 IBM 虚拟机中使用了 Ubuntu 18.04.4,在 Ubuntu 终端中运行 jar 文件时出现错误。我已经安装了 Java。

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/ProgramDriver
    at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:37)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.ProgramDriver
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)

答案1

所以问题在于缺少库。当 Java 程序启动时,它会加载 JVM(Java 虚拟机),然后它还会开始加载所需的库。

您有错误:java.lang.NoClassDefFoundError这意味着缺少类,并且类是:org.apache.hadoop.util.ProgramDriver。因此,从这个错误中您可以看到缺少的类在里面Apache Hadoop。这是该项目的主页:https://hadoop.apache.org/

你应该做什么?如果你是要使用的程序的作者,那么请以某种方式将此依赖项添加到你的程序中。你可以将其添加到 jar 内部或外部,使用相对路径或绝对路径。

如果您无法更改代码,请检查您正在使用的项目的文档。看看是否有关于包含其他库的内容,您还可以检查Apache Hadoop如何使用和安装。

如果所有这些都没有帮助,您还可以检查如何在 JVM 中添加其他库,但是每次启动此 JVM 时,无论您里面有哪个项目,这Apache Hadoop都可能不是最佳解决方案。

祝大家好运!

相关内容