Java WebStart JNLP: запуск другого кода при первом запуске

Мы используем файл WebStart JNLP для создания ярлыка на рабочем столе наших пользователей.

Проблема в том, что мы хотели бы, чтобы код в нашем jar-файле запускался только тогда, когда пользователь нажимает ярлык на рабочем столе. Однако Java WebStart запускает банку также при первом запуске (когда мы устанавливаем значок на рабочем столе).

Есть ли способ установить значок, не запуская банку, но запускать банку, когда пользователь нажимает значок на рабочем столе?


person Dudi    schedule 21.06.2010    source источник


Ответы (2)


В вашем коде первым делом проверьте, существует ли файл [user.home]/.apphome/.installed (или в любом другом месте, на ваш выбор). Если он нормально запускает ваше приложение. Если он не создает этот файл и не выходит.

В зависимости от платформы, на которой вы его запускаете, вы также можете записывать в реестр Windows, но я бы не хотел.

Какова ваша стратегия, если пользователь не разрешает создание ярлыков через конфигурацию Java?

person parxier    schedule 30.06.2010
comment
Мы использовали то же решение, но с другим подходом. Мы используем Java Muffins, чтобы проверить, запускается ли приложение в первый раз, и оно работает хорошо! - person Dudi; 30.06.2010

почему бы не иметь два разных веб-приложения; один для установки; один для бега?

использовать некоторую логику на вашем веб-сервере, чтобы решить, что запустить?

person Jill    schedule 21.06.2010
comment
Привет, Джилл, есть идеи, как это сделать? не могли бы вы сослаться на ссылку или добавить несколько примеров? - person Dudi; 21.06.2010
comment
когда вы запускаете его с веб-страницы, вы можете передать ему параметр, который говорит только об установке; поэтому исполняемый файл должен быть несколько разумным. - person Jill; 22.06.2010
comment
Для обычной веб-страницы\серверного приложения - это имеет смысл. Однако, что касается JNLP, я не смог найти в документации, как передавать параметры в JNLP. Я считаю, что проблема в том, что мне нужно запустить на моем веб-сайте другой JNLP, чем тот, который установлен на пользовательском компьютере. - person Dudi; 22.06.2010