Смешайте --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.

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