У меня есть небольшая программа (сейчас шесть *.java
файлов плюс библиотека ini4j-0.5.4.jar
).Он отлично работает в Eclipse, но мне нужно скомпилировать и запустить его в системе без графических возможностей, поэтому я создал для него команду javac
, которая будет запускаться из каталога проекта:
javac -d bin -classpath libs/ini4j-0.5.4.jar src/main/*.java
Когда он запускается, он генерирует две строки:
error: module not found: ini4j
1 error
Я несколько лет был в стороне от программирования на Java, и я просто догоняю изменения для модулей и тому подобное.Похоже, что это источник проблемы: файл ini4j
был написан до того, как появились модули.Я видел намеки на то, что есть способ заставить модульную Java-программу работать с немодульными компонентами, и, очевидно, она работает, когда я запускаю ее из графического интерфейса Eclipse, но способ заставить компилятор javac
принять ее ускользает от меня..
Я использую openjdk (и javac) 11.0.3 под Ubuntu 19.04, если это поможет.
Итог: как я могу получить этот немодульный файл JAR вскомпилировать в новую (модульную, простую) Java-программу с помощью компилятора командной строки javac
?
РЕШЕНИЕ: С помощью комментариев и ответа:Я нашел способ исправить проблему, изменив командную строку javac
следующим образом:
javac -g -d bin --module-path libs/ini4j-0.5.4.jar src/main/*.java
Теперь это не доставляет мне проблем при компиляции.:-) Все еще пытаюсь понять, как на самом деле запустить из командной строки, но это уже другая тема.
Спасибо всем за помощь!