2010-06-21 4 views
1

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

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

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

ответ

0

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

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

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

+0

Мы использовали одно и то же решение, но с другим подходом. Мы используем Java Muffins, чтобы проверить, запускается ли это приложение при первом запуске - и он работает хорошо! – Dudi

+0

@ Dudi Это еще лучше. – parxier

2

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

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

+0

Hi Jill - любая идея, как это сделать? не могли бы вы ссылаться на ссылку или добавить несколько примеров? – Dudi

+0

, когда вы начинаете его с веб-страницы, вы можете передать ему параметр, который говорит только для установки; так что исполняемый файл будет несколько интеллектуальным. –

+0

Для нормальной веб-страницы \ серверное приложение - это имеет смысл. Однако, что касается JNLP, я не смог найти в документации, как передавать параметры в JNLP. Я считаю, что проблема заключается в том, что мне нужно запустить другой JNLP на моем веб-сайте, чем тот, который установлен на компьютере пользователя. – Dudi