Java 9 javapacker не может найти jfxrt.jar при создании bss'. Кажется, полностью не работает в режиме "createbss" под Linux. Как избежать ошибки?

У меня есть система Ubuntu Linux с Sun JDE 9.0.1, и мне нужно конвертировать некоторые CSS-файлы Fx в двоичную форму из консоли. Но когда я выполняю команду:

javapackager  -createbss -outdir . -srcdir .

Я получил ошибку:

Ошибка: jfxrt.jar должен быть в пути к классам для -createbss и для -createJar без -nocss2bin

Мой JDK установлен правильно. У меня есть все необходимые модули (включая FX). Любые идеи, как я могу избежать глупой ошибки и заставить упаковщик выполнять свою работу? Если я запускаю javapackager из каталога "/usr/lib/jvm/java-9-oracle/jmods", он завершается без ошибок. Так что сейчас я использую некрасивое исправление, ищу каталог модулей, делаю его текущим, запускаю упаковщик оттуда. Но это чертовски уродливо. javapackager не принимает никаких других параметров, кроме outdir, srcdir и srcfiles, поэтому я не могу принудительно загрузить или посмотреть путь для модуля jfx. Но может есть какая-то хитрость с переменными окружения или что-то, что может сделать исправление менее уродливым?

PS Запуск из каталога jmod или удаление "-srcdir" из параметров устраняет ошибку, но упаковщик не генерирует никаких выходных файлов (даже если я указываю входные файлы с помощью "-srcfiles"). Кажется, что javapackager полностью сломан в режиме createbss. Кто-нибудь использует это с Java 9?

1 ответ

Я проверил источники - javapackager из JDK 9.0.1 полностью сломан! Используйте исполняемый файл из Java 8. Я заполнил отчет об ошибках в Oracle, и они внезапно были очень удивлены (никто не заметил, что одна из основных функций основного инструмента еще не работает?!).

ВРЕМЕННОЕ РЕШЕНИЕ: Используйте инструмент javapackaged JDK 1.8. Все, что вам нужно, это сам исполняемый файл, который вы можете поместить в любое место. Я поместил его прямо в дерево моего проекта (в каталоге "tools") и вызвал скрипт сборки. ПРЕДУПРЕЖДЕНИЕ! Используйте этот замененный исполняемый файл ТОЛЬКО для "createbss"! Используйте обычный для всех других вещей!

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