Как распространить мою программу на Java, чтобы ее можно было запустить, дважды щелкнув один файл? - PullRequest
9 голосов
/ 22 августа 2011

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

Я также не хочу вручную устанавливать JRE для его запуска. По сути, я хотел бы знать, как сделать так, чтобы мое java-приложение легко запускалось двойным щелчком (даже если оно только в Windows, все в порядке). Я почти уверен, что мне нужно будет упаковать правильную версию JRE, но я не знаю, как правильно это сделать.

Я читал на некоторых сайтах, что вам не следует упаковывать JRE вместе с вашей программой, потому что она заставляет людей иметь несколько разных версий, некоторые из которых устарели, и это вызывает проблемы безопасности, но это не проблема в этом случае, так как компьютеры, на которых будет запускаться мое приложение, не подключены к Интернету и в любом случае используются только для запуска этой программы.

Несколько связанный вопрос: поскольку мое приложение в настоящее время является проектом Eclipse, я получаю свои ресурсы, такие как значки, изображения, базу данных SQLite (для чтения и записи) и т. Д., Используя относительные пути (например, img/test.png).

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

Ответы [ 4 ]

7 голосов
/ 22 августа 2011

То, что вы ищете, это файл JAR. В Eclipse довольно просто создать Jar-файл. В частности, вам нужно будет щелкнуть правой кнопкой мыши свой проект, перейти к экспорту и выбрать «Runnable Jar». Будьте осторожны с путями к папкам. Возможно, вам придется держать папку ресурсов рядом с файлом JAR. Возможно, вам придется предоставить более подробные сведения, чтобы получить точный ответ на этот вопрос. Обычно папка «Ресурсы» находится в том же месте, что и файл JAR (в той же папке на вашем компьютере).

4 голосов
/ 22 августа 2011

Лучший вариант для простой установки Java-приложения.с графическим интерфейсом, чтобы запустить его с помощью Java Web Start .Для пользователя JWS - это вариант установки «одним щелчком», который может (установить и запустить приложение. Затем) добавить ярлыки на рабочем столе и пункты меню.Запуск JWS будет означать дополнительную работу для вас, но это будет легким делом для конечного пользователя.

Чтобы обеспечить наличие подходящего JRE для запуска приложения, используйте deployJava.js (см. Ссылку JWS дляподробнее).Сценарий должен быть переконфигурирован, чтобы получить установщик JRE из локальной сети - по умолчанию его получают из Oracle.

Большая часть ресурсов должна быть упакована в файлы Jar и поставляться вместе с приложением.но для БД используйте JNLP ExtensionInstallerService для вызова установщика БД.


.. Java Web Start является своего рода ссылкой (или я могу сделать этоярлык на рабочем столе), который пользователи будут нажимать, чтобы установить JRE и запустить программу, если JRE не установлена, или просто запустить программу, если JRE присутствует на компьютере.

Чтобы это работало, нужно иметь веб-страницу в локальной интрасети.Когда пользователь заходит на страницу, скрипт проверяет наличие подходящей JRE.

  • Если он присутствует, он записывает ссылку на файл запуска.
  • Если JRE отсутствует или версия слишком низкая, он поможет пользователю установить его (просто нажмите кнопку «ОК» при появлении запроса).Затем будет добавлена ​​ссылка на приложение.

Затем я могу настроить ссылку для получения JRE с сервера в нашей сети.

Это та часть, где вам нужно перенастроить скрипт.AFAIR сценарий предоставляет URL-адрес для поиска JRE, который можно изменить, чтобы он указывал на место в интрасети.

.. Таким образом, «сеть» - это только имя, компьютерыне нужно быть подключенным к интернету, чтобы иметь эту работу, верно?

Да.JWS - это отличная технология запуска для клиентов, насыщенных Java, но это плохо выбранное имя.

1 голос
/ 22 августа 2011

Чтобы запустить проблему, дважды щелкнув ее, вы можете распространить ее как файл jar или пакетный файл для вызова файла jar.
Для части установки вы можете создать командный файл, который проверяет наличие java, а затем вызвать установщик, если его нет.
Edit:
Код партии:

IF DEFINED JAVA GOTO ok
java-installer.exe
GOTO end
:ok
your-application.jar
:end
0 голосов
/ 22 августа 2011

Если вам сложно реализовать вышеупомянутые методы.Вы можете продолжить этот простой подход.

Создать папку lib в определенном месте.Поместите в нее все банки, которые использует ваше приложение.Если вы можете создать jar-файл для своего приложения, вы также можете поместить свой application.jar в папку lib.Создайте пакетный файл в том же месте, в котором будет содержаться команда java для вашего основного класса.Текст в вашем пакете может выглядеть примерно так:

set path="\lib\"
java -cp %path% package1.package2.MainClass

Если у вас есть другие зависимости, например: если вы используете изображения в коде в img / icon.jpg.Тогда вам просто нужно переместить папку img в это место.

Просто архивируйте эти файлы с помощью winrar и делитесь ими.Запуск пакетного файла после распаковки zip приведет к запуску java MainClass независимо от того, где он находится в клиентской системе.

PS: Если вы не можете создать jar-файл для своего приложения и поместить его в папку lib, просто скопируйте папку bin с файлами классов, вставьте ее в папку и измените пакетный файл соответствующим образом, чтобы искать классы.внутри бен

...