Я пытаюсь скомпилировать файл jar с помощью моей java программы, используя javac -cp dependency.jar *.java
, а затем запустить его, используя java -cp dependency.jar mainPrgram
Программа прекрасно компилируется, а также работает нормально, пока не будет выполнен вызов функции с использованием зависимости .
Исключение, которое я получаю, ниже
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/Gson
at DFS.readMetaData(DFS.java:250)
at DFS.touch(DFS.java:111)
at CommandLine.<init>(CommandLine.java:41)
at CommandLine.main(CommandLine.java:132)
Caused by: java.lang.ClassNotFoundException: com.google.gson.Gson
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 4 more
Пробовал различные решения от
Почему я получаю ошибку NoClassDefFoundError в Java?
Класс в jar не найден во время выполнения, но использовался для компиляции
Но ни один из них не работал
ОБНОВЛЕНИЕ: Код прекрасно работает в Eclipse, но не из командной строки
После запуска с eclipse .classpath
имеет следующее:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path=""/>
<classpathentry kind="lib" path="C:/Users/MyPC/Documents/projects/MusicPlayer/gson-2.8.6.jar"/>
<classpathentry kind="output" path=""/>
</classpath>