Я использовал Ubuntu 18.04. 4 на моей виртуальной машине IBM, и я получил ошибку при запуске файла JAR в терминале Ubuntu. Я уже установил 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)
Итак, проблема в том, что библиотеки нет. Когда вы запускаете Java-программу, она загружает JVM (виртуальную машину Java) и после этого начинает загружать также необходимые библиотеки для работы.
У вас есть ошибка: java.lang.NoClassDefFoundError
, что означает, что класс отсутствует, а класс: org.apache.hadoop.util.ProgramDriver
. Таким образом, из этой ошибки вы можете видеть, что отсутствующий класс находится внутри Apache Hadoop
. Это домашняя страница этого проекта: https://hadoop.apache.org/
Что делать? Если вы являетесь автором программы, с которой намереваетесь работать, добавьте эту зависимость как-нибудь в свою программу. Вы можете добавить его внутри банки или снаружи с относительным или абсолютным путем.
Если вы не можете изменить код, проверьте документацию проекта, который вы используете. Посмотрите, есть ли что-то о включении дополнительных библиотек, и вы также можете проверить Apache Hadoop
, например, как его использовать и установить.
Если все это не помогает, вы также можете проверить, как вы можете добавить дополнительные библиотеки в JVM, но затем каждый раз, когда вы запускаете эту JVM, независимо от того, для какого проекта у вас будет Apache Hadoop
внутри и Возможно, это не оптимальное решение.
Удачи всем!