Скомпилируйте и запустите Java-программу в Linux с путем к файлу.java и путем к внешним jar-файлам
Вчера я решаю проблему с ответом здесь в stackru. Но я столкнулся с другой проблемой, но постараюсь прояснить:
У меня есть папка проекта в каталоге /home/demo/Desktop/xlsToCsv/, в которой находится java-файл "xlsToCsv.java", и другой каталог с необходимыми мне внешними банками в /home/demo/Desktop/xlsToCsv/ банка.
Теперь мне нужно скомпилировать и запустить мою программу. Вчера я спросил это, и я выполнил команду, которая предполагала, что я уже был в /home/demo/Desktop/xlsToCsv/, и команда была:
javac -cp ".:./ jars / *" xlsToCsv.java
java -cp ".:./ jars / *" xlsToCsv
Проблема была решена, и я смог запустить мою программу без каких-либо проблем. Но моя программа запускается из корневого каталога, то есть из каталога, в котором она находится, когда я открываю терминал linux без необходимости выполнения команды "cd".
Итак, когда я открываю терминал, путь к файлу.java:
/ Главная / демо / Desktop / xlsToCsv /
И путь к папке jars:
/ Главная / DEMO / Desktop / xlsToCsv / банки / *
Может кто-нибудь объяснить мне, что я должен делать, и причина так? Поскольку больше, чтобы запустить программу, я хочу знать причины и понять механизм classpath в Java.
Спасибо
1 ответ
Избегайте использования относительного пути к классам. и экземпляр "./jars/" использовать абсолютный путь "/ home / demo / Desktop / xlsToCsv / jars /"
РЕДАКТИРОВАТЬ:
javac -cp "/home/demo/Desktop/xlsToCsv/jars/*" /home/demo/Desktop/xlsToCsv/xlsToCsv.java
java -cp "/home/demo/Desktop/xlsToCsv/:/home/demo/Desktop/xlsToCsv/jars/*" xlsToCsv