Доброго времени суток!
На Mac OS для работы с java апплетами использовали Firefox все прекрасно работало. Но вышло обновление Mac OS - Big Sur, вроде 12 Ноября, и апплеты перестали запускаться. Сначала конечно переставлял JRE, эффекта ноль. Firefox тоже переставлял. Подозреваю, что проблема в javalauncher, который используется при запуске апплетов.
До обновления было так: На сайте где требуется запустить апплет, кликаем ссылку, происходит сохранение файла и попытка его запуска. Firefox определяет, что это jnlp файл, не смотря на то что у него отсутствует расширение, и отправляет его в javalauncher, происходит запуск апплета.
После обновления Big Sur: Firefox нормально определяет, что это jnlp файл, но при отправке в javalauncher выдает вот такую ошибку:
При этом если запустить в терминале javaws и в параметре указать путь к файлу, то апплет стартует, получается сама JRE работает. Мало того, если этому файлу дописать расширение .jnlp, то щелкнув на нем 2 раза апплет тоже запустится, что говорит о том что и javalauncher работает ведь именно он и является программой по умолчанию для открытия jnlp файлов. То-есть не работает именно в случае, когда Firefox отправляет файл запуска апплета без расширения в javalauncher. И даже если полностью удалить JRE, ошибка та же что на картинке выше. Я так понимаю javalauncher поменялся и теперь перестал принимать файлы без расширений для перенаправления их в JRE.
Инфы по javalauncher в инете особо не нарыл.
Собственно, спросите причем здесь Firefox? Да скорее всего не причем)) Просто не знаю куда и сунуться с этим делом. Может можно как-то научить Firefox не терять расширение jnlp, скриптом например?
Спасибо!
Отредактировано yuhter (30-11-2020 20:05:37)
Отсутствует
В Chrome, Opera, Safari, Vivaldi вобще файл jnlp не сохраняется, сам скрипт на странице, который генерирует этот файл, не запускается (полагаю ajax используется), возможно криво сам WebServer выдает эту инфу и браузеры недоумевают что с этим делать. Ну это так на Mac, а на Windows например Chrome его нормально сохраняет и расширение не теряет, в IE собственно плагин установлен для старта Java апплетов так что тоже проблем нет, а в Firefox сохраняется как и на Mac без расширения, но на Windows это не критично так как используется IE для работы с Java, ну и прослойки этой JavaLauncher нету поэтому и Firefox нормально все отправляет сразу в JavaWS.
Отредактировано yuhter (15-12-2020 19:07:12)
Отсутствует
Пока решил проблему написанием простой программки на Swift. Поставил ее как приложение по умолчанию для открытия "Файл протокола запуска сети Java" в настройках Firefox.
func startjre() { var jnlp : String jnlp = "~/Downloads/frmservlet" let task = Process() task.launchPath = "/bin/bash" task.arguments = ["-c","javaws \(jnlp)"] //task.waitUntilExit() do {try task.run()} catch {print(error)} task.launch() } startjre() exit(0)
По сути просто с помощью bash отправляю файл jnlp без расширения в JavaWS. Хотел имя файла не фиксированное брать, а получать его от Firefox, но не пойму как он его передает, в параметрах запуска не нахожу, буду благодарен если кто подскажет.
Отредактировано yuhter (01-12-2020 17:55:06)
Отсутствует