Я использовал три внешних баночки:
Когда я пытаюсь создать банку для своего проекта, я получаю сообщение об ошибке:
Exception in thread "main" java.lang.NoClassDefFoundError:
org/jfree/data/xy/XYDataset
at Main.main(Main.java:124) Caused by:java.lang.ClassNotFoundException: org.jfree.data.xy.XYDataset
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) ... 1 more
То же самое с помощью IntelliJ.
Я пробовал следующее:
Пожалуйста, предложите.
Это не дубликат, он другой. Данное решение по ссылке не работает.
См. Также stackoverflow.com/a/42660624/104891 и stackoverflow.com/a/45169655/104891.
Проблема в том, что в файле манифеста нет ссылки на внешние jar-файлы. когда я распаковываю банку, я вижу внешние банки, но как компилятор получит ссылки, если файл манифеста не указывает на него
Jar-файлы внутри jar-файлов в любом случае не будут работать, IDE добавляет ссылки или распаковывает jar-файлы автоматически, если артефакт настроен правильно (как описано в stackoverflow.com/a/42200519/104891, либо рядом и связаны через манифест, либо извлеченный внутри одного jar). Обратите внимание, что какой-либо другой манифест из зависимого jar-файла может переопределить исходный, это можно исправить, изменив порядок файлов в артефакте, см. youtrack.jetbrains.com/issue/IDEA-116209#comment=27-656589.
Как основной jar узнает местоположение jar, когда основной jar экспортируется и запускается .. Должна быть ссылка на внешние библиотеки, верно?
IntelliJ IDEA создает файл манифеста со ссылками на другие jar-файлы, когда вы используете параметр связать зависимые jar-файлы через Manifest.MF для артефакта. Пример проекта HelloWithDependencies.zip, упомянутый в первом комментарии, содержит образец проекта. Соберите артефакт, проверьте файл out\linked\HelloWithDependencies.jar\META-INF\MANIFEST.MF, в нем будет ссылка на зависимый jar: Class-Path: log4j-1.2.17.jar.
Если все еще непонятно, см. этот снимок экрана.




См. stackoverflow.com/a/42200519/104891.