Понимание развертывания на Java 9+ - PullRequest
0 голосов
/ 22 октября 2019

Проигнорировав обновления Java в течение некоторого времени, я теперь хочу перейти от несколько тенистой среды выполнения Java 10.0.2, которую я нашел где-то к Java 13. Как выяснилось, Oracle прекратил «монолитную» философию JRE после Java 8и я не могу найти какие-либо окончательные ответы на мои вопросы о том, как я буду развертывать.

Вот то, что я думаю, остается тем же:

  • Рабочий процесс IDE (затмение) в основном остается тем же
  • Если я хочу использовать программу самостоятельно, я могу скомпилироватьэто файл .jar, который будет работать на JVM, поставляемой с JDK, точно так же, как и во время выполнения Java 8

Теперь вот сложная часть, которую я не могу обернуть: развертываниена других машинах

  1. Создайте module-info.java, который перечисляет зависимости этой программы
  2. Скомпилируйте .jar как всегда, используя диалог eclipse
  3. Использовать jlinkсоздать образ времени выполнения для этой программы, который будет поставляться вместе с

... Но что теперь?

Как эти изображения заставляют программу работать? Я читал, что это какая-то небольшая JRE только для этой программы, что устраняет необходимость установки Java в целевой системе, но как это будет кросс-платформенным?

Или это какие-точто-то вроде «патча» для JRE, который можно скачать с официального сайта ? Это объясняет, почему это все еще обновляется, но это не устранит необходимость установки Java на целевой машине.

TL; DR:

  • Что-то не так с моим пониманием?
  • Как работают образы времени выполнения jlink-ed?
  • Как они кроссплатформенны?
  • Является ли цельна машине все еще нужно какое-либо предустановленное программное обеспечение, связанное с Java, например, время выполнения / время выполнения, указанное в ссылке?

Большое спасибо за чтение моей стены текста и заранее спасибо заответ!

РЕДАКТИРОВАТЬ: Прояснил вопрос четвертый.

1 Ответ

0 голосов
/ 23 октября 2019

Слав ответил на все мои вопросы в комментариях к исходному вопросу, поэтому я изложу их здесь в этом ответе.

  • Насколько я понимаю, пока все правильно
  • jlink создает мини-JRE с модулями, которые нужны программе, как указано в module-info.java
  • Это не так, нужно, например, Linux-JDK создать версию для linux и т. Д. .
  • Все файлы, необходимые для запуска / интерпретации программы, содержатся в образе времени выполнения

Также спасибо за информацию extr! Я обязательно загляну в JMOD, и из того, что я прочитал о jpackage, это то, что будет очень воодушевлять.

...