Как обновить модуль JDK в javac - PullRequest
0 голосов
/ 08 октября 2018

У меня есть некоторый код, который мне нужно скомпилировать с JDK 11, который использует версию Java 100 для пакета javax.annotation.В частности, я хочу использовать @Resource в качестве повторяемой аннотации (спецификация Common Annotations 1.3), тогда как аннотация НЕ повторяется в JDK 8. Кроме того, мне нужно скомпилировать этот код на уровне байт-кода Java 8, поскольку мой код все еще должензапустить на JDK 8.

Если я скомпилирую свой код с помощью javac --release 8, то я вынужден использовать версию JDK 8 javax.annotations.В идеале я хотел бы использовать --upgrade-module-path, но javac блокирует эту опцию:

javac --release 8 --upgrade-module-path /path/to/upgraded/module/
error: option --upgrade-module-path cannot be used together with --release

На предыдущих уровнях Java я добавлял мой javax.annotion jar к загрузочному пути, но этотакже блокируется с помощью --release

$ javac --release 8 --boot-class-path foo
error: option --boot-class-path cannot be used together with --release

Есть ли способ безопасно скомпилировать до более раннего уровня Java, а также переопределить / обновить определенные пакеты / модули?

...