Почему программа Java компилируется и запускается в IntelliJ, но на терминале не находит зависимостей?

#java #intellij-idea

#java #intellij-idea

Вопрос:

У меня есть Java-проект в IntelliJ по определению языка. Я использовал этот пакет:https://github.com/optimaize/language-detector и в IntelliJ все работает нормально. Фактически программа компилируется и запускается без каких-либо проблем.

К сожалению, когда я пытаюсь скомпилировать ее с

javac Main.java

на терминале написано

ошибка: пакет com.optimaize.langdetect не существует

В основном я использую свой ноутбук в разработке, и я хотел бы запустить код на сервере DigitalOcean. Как я могу это исправить? Я думал о переменных среды JAVA и путях или зависимостях maven, но о них должен позаботиться IntelliJ, верно?

Спасибо за любую помощь!

Комментарии:

1. скорее всего, вы настроили зависимости в своей ide, а не в глобальном пути к классам

2. создайте работоспособный jar и повторите попытку

3. @AsierAranbarri как предполагается создать работоспособный jar, если он не компилируется?

4. @AsierAranbarri да, и теперь он пытается СКОМПИЛИРОВАТЬ ее через приглашение, вот где возникает ошибка. Как указано в op в «К сожалению, когда я пытаюсь скомпилировать его на терминале, он выдает ошибку: package com.optimaize. langdetect не существует «. вопрос в том, почему она компилируется в IDE, а не через терминал, а не о проблемах во время выполнения.

5. @AsierAranbarri хорошо … это происходит 🙂

Ответ №1:

Скомпилируйте jar на своем компьютере, а затем запустите файл jar на сервере.

Если вы хотите скомпилировать на сервере с зависимостями, я рекомендую использовать систему сборки.

Поскольку вы используете maven (я думаю), вам следует скомпилировать с mvn install вместо javac .