2016-04-04 2 views
5

У меня есть приложение апплета java, доступ к которому осуществляется нашими клиентами через наш веб-сайт. Поскольку Microsoft edge и chrome перестали поддерживать java-plug-in, мы преобразовали апплет для запуска через JNLP и Java Web Start, к сожалению. В обоих браузерах загружен JNLP, и клиент должен дважды щелкнуть файл, чтобы запустить Java Web Start.Как сделать запуск веб-запуска Java автоматически без двойного щелчка на JNLP

Наши клиенты полностью разочарованы этим поведением, и я пытаюсь найти решение этой проблемы.

+0

Предоставляет ли сервер правильный [тип содержимого для JNLP] (https://www.google.com.au/search?q=content-type+for+a+JNLP&oq=content-type+for+ а + JNLP & AQS = chrome..69i57j0.580j0j7 & SourceId = хром & т.е. = UTF-8)? –

+2

Да, Andrew .... Сервер предоставляет правильный тип контента для JNLP, но в настоящее время Java Web Start не начинается с Microsoft Edge или Google Chrome, и ответ, который вы предоставляете для http://stackoverflow.com/questions/7556986/auto-launch-jnlp-on-click действует для этого периода (2011), но не работает сейчас. – ManKeer

ответ

8

Возможные решения

1) Изменение поведения в браузере, чтобы спросить у пользователя, что делать, когда он нажмите на JNLP link. Затем пользователь может выбрать Open with: Java web start launcher или save file.

редактировать Это работает в Firefox, но он не работает с Chrome: см отчетов связанных ошибок 10877 и open issues

2) Обеспечить сценарий для пользователя, который выполняет
javaws https://example.com/your_application.jnlp

Пример демонстрации (ссылка на приложение, взятая из учебника Oracle: Running a Java Web Start Application)

javaws https://docs.oracle.com/javase/tutorialJWS/samples/deployment/NotepadJWSProject/Notepad.jnlp 

Это откроет простое приложение Java.

Редактировать Для бесстрашного есть хакерское решение для Chrome.

  1. близко Chrome, и иметь в виду, чтобы всегда сделать копию файлов измененных в следующих шагах ;-)
  2. находкой в ​​библиотеке Chrome chrome.[so|dll] байты jnlp и залатать их, как, например, jnl-
  3. находка в вашем Chrome каталоге профиля пользователя файл Preferences и изменить его, как ...

.

"download": { 
    ... 
    "extensions_to_open": "jnlp", 
    ... 
}, 

В следующий раз вы нажмете на ссылку на JNLP файл, он автоматически будет открыт (с приложением, которое назначено, чтобы открыть этот тип файла, как правило, это javaws).

Недвижимость была найдена после ознакомления с источником pref_names.cc. Но Chrome обрабатывает расширение jnlp как dangerous, поэтому нам нужно также исправить библиотеку.

+0

как я могу применить первый пункт, в отношении примера, о котором вы упоминали, он не работает с сайта oracle. Более того, я ищу работу Jave Web Start напрямую, мне не нужен клиент, чтобы увидеть какие-либо изменения, просто нажмите ссылку, и все будет работать точно так же, как он запускает апплет. – ManKeer

+0

@ManKeer Извините, моя вина. Не обращал достаточного внимания на рассматриваемые браузеры. Я исправляю свой ответ хотя бы для Chrome. Для Microsoft Edge я не могу помочь, не имею его. – SubOptimal

+0

@ManKeer Не настоящее решение для ваших клиентов, но, возможно, вы все равно заинтересованы. Взгляните на «хакерское решение» в моем ответе. – SubOptimal