Что является лучшим способом обнаружить, запущено ли приложение Webstart

Попробуйте добавить каждую панель инструментов непосредственно в соответствующий виджет, используя QVBoxLayout, как описано в Как встроить matplotlib в pyqt - для чайников .

Или, если вы все еще предпочитаете использовать область панели инструментов в QMainWindow, вам необходимо подключить сигнал currentChanged QTabWidget к слоту, заменив панель инструментов на ту, которая соответствует виджету выбранного виджет.

13
задан 2 revs 23 May 2017 в 11:46
поделиться

3 ответа

Используйте javax.jnlp. ServiceManager для получения webstart сервиса. Если это - availabe, Вы работаете под Webstart.

См. http://download.java.net/jdk7/docs/jre/api/javaws/jnlp/index.html

5
ответ дан 1 December 2019 в 22:08
поделиться

У меня нет реального опыта с Java веб-запуск кроме рассмотрения его несколько лет назад.

Как насчет запускают Ваше приложение с параметром, который Вы определяете, чем Вы устанавливаете, когда приложение запускается через Java веб-запуск.

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

Затем проверьте, чтобы видеть, установлены ли эти свойства.

Снова это - предложение, которое я не кодировал для JWS, и это не может быть это легкое.

3
ответ дан 1 December 2019 в 22:08
поделиться

Поскольку Вы упомянули, проверив, что свойство System следующим образом является, вероятно, самым чистым путем:

private boolean isRunningJavaWebStart() {
    return System.getProperty("javawebstart.version", null) != null;
}

В производственной системе я использовал вышеупомянутую технику в течение многих лет.

Можно также попытаться проверить, чтобы видеть, существуют ли какие-либо свойства, которые запускаются с "jnlpx". но ни один из тех, как действительно не "гарантируют", будет там любой насколько я знаю.

Альтернатива могла быть должна попытаться инстанцировать DownloadService нас предложенный Tom:

private boolean isRunningJavaWebStart() {
    try {
        DownloadService ds = (DownloadService) ServiceManager.lookup("javax.jnlp.DownloadService");
        return ds != null;
    } catch (UnavailableServiceException e) {
        return false;
    }
}

Конечно, это действительно имеет оборотную сторону связи Вашего кода к тому API.

4
ответ дан 1 December 2019 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: