Проблемы миграции, касающиеся OpenJDK 11 и OpenJFX 11 (& Proguard) - PullRequest
0 голосов
/ 02 ноября 2018

В настоящее время мы переносим приложение Java из Oracle JDK 8 (код приложения, предоставляемый JNLP) в OpenJDK 11 (код приложения, поставляемый как исполняемый вместе с Java Runtime). Хотя мы нашли более или менее работающее решение в нашей тестовой среде, у нас все еще есть следующие проблемы:

  1. Наше приложение нуждается в JavaFX, и мы хотим использовать jlink для сборки. Рекомендуется использовать jmods OpenJFX, поставляемые в https://gluonhq.com/products/javafx, для создания подходящего образа jlink с использованием OpenJDK, или есть другие варианты?

  2. OpenJFX jmods в настоящее время официально только поставляется в версии 11 (скомпилировано для JDK 11) на gluonhq, тогда как обфускация Proguard работает только для кода, скомпилированного для JDK до версии 10 (см. https://sourceforge.net/p/proguard/feature-requests/188/). Неясно, когда Proguard также будет поддерживать версию 11. Должны ли мы ждать, пока это произойдет, или какие у нас есть варианты? Будет ли хорошим вариантом загрузить и собрать исходные коды OpenJFX нацеленный на версию 10 (я понятия не имею, возможно ли это из коробки), или даже остаться с двоичными файлами Oracle 10 JDK и / или его javafx jmod-файлами, если Proguard не понимает код OpenJDK 11?

  3. Мы также ищем инструмент для создания удобных для пользователя исполняемых файлов для Windows и MacOS (например, самораспаковывающиеся исполняемые файлы без изменений в реестре). Похоже, что javapackager сейчас недоступен (http://openjdk.java.net/jeps/343 планируется для OpenJDK 12) и не поддерживает ни кросс-компиляции, ни механизма автообновления. Поэтому мы ищем инструмент, который может выполнять как: а) автоматическое обновление (динамическую загрузку кода приложения или новых образов jlink при запуске), так и б) создание исполняемых файлов для Windows и MacOS. Есть ли хороший инструмент, поддерживающий что-то похожее на механизм автообновления средства запуска JNLP от Oracle, готовый для использования в производственных средах?

  4. Для JNLP мы применяем подпись кода. По-прежнему рекомендуется и возможно ли подписывать а) код нашего приложения, расположенный на изображениях jlink, и б) динамически загружаемый код приложения, оба построенные с использованием JDK11 +?

Спасибо за помощь, Питер.

...