Доброго времени суток!

На Mac OS для работы с java апплетами использовали Firefox все прекрасно работало. Но вышло обновление Mac OS - Big Sur, вроде 12 Ноября, и апплеты перестали запускаться. Сначала конечно переставлял JRE, эффекта ноль. Firefox тоже переставлял. Подозреваю, что проблема в javalauncher, который используется при запуске апплетов.

До обновления было так: На сайте где требуется запустить апплет, кликаем ссылку, происходит сохранение файла и попытка его запуска. Firefox определяет, что это jnlp файл, не смотря на то что у него отсутствует расширение, и отправляет его в javalauncher, происходит запуск апплета.

После обновления Big Sur: Firefox нормально определяет, что это jnlp файл, но при отправке в javalauncher выдает вот такую ошибку:

1.png

При этом если запустить в терминале javaws и в параметре указать путь к  файлу, то апплет стартует, получается сама JRE работает. Мало того, если этому файлу дописать расширение .jnlp, то щелкнув на нем 2 раза апплет тоже запустится, что говорит о том что и javalauncher работает ведь именно он и является программой по умолчанию для открытия jnlp файлов. То-есть не работает именно в случае, когда Firefox отправляет файл запуска апплета без расширения в javalauncher. И даже если полностью удалить JRE, ошибка та же что на картинке выше. Я так понимаю javalauncher поменялся и теперь перестал принимать файлы без расширений для перенаправления их в JRE.

Инфы по javalauncher в инете особо не нарыл.

Собственно, спросите причем здесь Firefox? Да скорее всего не причем)) Просто не знаю куда и сунуться с этим делом. Может можно как-то научить Firefox не терять расширение jnlp, скриптом например?

Спасибо!

А в Chrome работает?

В Chrome, Opera, Safari, Vivaldi вобще файл jnlp не сохраняется, сам скрипт на странице, который генерирует этот файл, не запускается (полагаю ajax используется), возможно криво сам WebServer выдает эту инфу и браузеры недоумевают что с этим делать. Ну это так на Mac, а на Windows например Chrome его нормально сохраняет и расширение не теряет, в  IE собственно плагин установлен для старта Java апплетов так что тоже проблем нет, а в Firefox сохраняется как и на Mac без расширения, но на Windows это не критично так как используется IE для работы с Java, ну и прослойки этой JavaLauncher нету поэтому и Firefox нормально все отправляет сразу в JavaWS.

Пока решил проблему написанием простой программки на 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, но не пойму как он его передает, в параметрах запуска не нахожу, буду благодарен если кто подскажет.