Java не находит библиотеки в CLASSPATH

У меня есть JAR-файл, который имеет много зависимостей (в основном ApacheCommons). Когда я помещаю все эти JAR в тот же каталог, что и мой основной JAR, все работает нормально. Но это создает беспорядок, а также означает, что людям приходится носить с собой все эти внешние библиотеки всякий раз, когда они перемещают JAR моей программы в своей системе.

Поэтому я поместил их все в отдельный каталог и добавил путь к этому каталогу к переменной среды CLASSPATH (используя /etc/environment). Теперь, несмотря на то, что echo $CLASSPATH возвращает этот путь, мой JAR без этих библиотек в том же каталоге вызывает java.lang.NoClassDefFoundError (что происходит, когда не удается найти необходимые внешние JAR).

Любая помощь / идеи будут высоко оценены.

0
задан 11 August 2013 в 21:38

1 ответ

Это на самом деле не проблема Ubuntu, см. Этот вопрос о стекопотоках.

CLASSPATH-Variable не перечисляет пути к файлам jar, но добавляет пути к файлам классов Java. Чтобы включить jav-файл в путь к классам, вы должны поместить имя файла jar-файла в путь к классам (например, CLASSPATH=/path/to/some/jar/file/jarfile.jar).

0
ответ дан 11 August 2013 в 21:38

Другие вопросы по тегам:

Похожие вопросы: