У меня есть проект java gradle, который ссылается на другой проект java gradle, который строится как библиотека.
Моя конфигурация gradle выглядит нормально, так как я могу импортировать и использовать классы из другого проекта, иэто компилируется.Но когда я пытаюсь запустить приложение из командной строки, я получаю сообщение об ошибке ...
Исключение в потоке "main" java.lang.NoClassDefFoundError: dawcore / SamplerInstrument в DawCLI.main (DawCLI.java: 17) вызвано: java.lang.ClassNotFoundException: dawcore.SamplerInstrument на java.net.URLClassLoader.findClass (URLClassLoader.java:382) на java.lang.ClassLoader.loadClass (ClassLoader.java:424) на солнце..Launcher $ AppClassLoader.loadClass (Launcher.java:349) в java.lang.ClassLoader.loadClass (ClassLoader.java:357) ... еще 1
Похоже, что он можетне загружать классы в банку во время выполнения .... что имеет смысл.Но я не знаю, как заставить его успешно загрузить эти классы.
Моя текущая команда запуска, которая не ссылается на jar, выглядит следующим образом ...
/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java -ea -cp "build/classes/main/" DawCLI
Запуск этоговыдает первоначально упомянутую ошибку.
Затем я читаю документацию по аргументу java -cp.В нем говорится, что нужно предоставить дополнительные каталоги classpath, разделив их точкой с запятой.
Я впоследствии обновил свою команду run следующим образом ....
/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java -ea -cp "build/classes/main/;../DawCore/build/libs/DawCore.jar" DawCLI
Это дает мне следующую ошибку....
Ошибка: не удалось найти или загрузить основной класс DawCLI
Моя основная функция выглядит следующим образом ..
import dawcore.*;
public class DawCLI {
public static void main (String [] args) throws IOException {
SamplerInstrument samplerkick = new SamplerInstrument();
}
}
Согласнодокументы, которые я, кажется, делаю правильно, но все еще получаю ошибки.Любая идея по этому вопросу будет принята с благодарностью!
Спасибо