Смешайте --class-path и --module-path в javac (JDK 9)
Я пытался ответить на этот вопрос, но он не работает для меня. Я хочу скомпилировать 1 модуль (который не требует какого-либо другого модуля или jar) вместе с другими классами, которые используют этот модуль и будут в безымянном модуле.
javac -cp lib\* --module-path modules --add-modules simpleModule -d out @classes.txt
После запуска этой команды я получаю "пакет org.... не существует". Но jar с этим пакетом находится в директории lib
lib - каталог с моими библиотеками-jars
модули - эта папка содержит модуль "simpleModule" с module-info.java
@ classes.txt - весь список классов для компиляции (включая модульные и немодулярные). ОС - Windows
Когда я удаляю module-info.java из simpleModule, все компилируется хорошо.
0 ответов
Старый вопрос, но я недавно столкнулся с похожей проблемой при работе над проектом с использованием модульных и немодульных jar-файлов. Основываясь на вашем примере командной строки, используйте следующую командную строку, если ваш модуль находится в jar
:
javac -cp lib\*.jar -d out @classes.txt
Если модуль не находится в jar
, имея в виду взорванный каталог, это будет команда:
javac -cp mods\moduled.in.question -d out @classes.txt
Я протестировал вышеизложенное с использованием JDK 11.0.1.