Проблемы с зависимостями при развертывании с использованием Java Webstart - PullRequest
2 голосов
/ 12 августа 2010

Я работаю над проектом на Java, структура каталогов которого выглядит примерно так:

        MainFolder
        /   |     \
Folder1  Folder2  Folder3...
   |
Program.jar|Run.sh

В папке Folder1 у меня есть основной файл jar вместе со сценарием оболочки для запуска программы.В Folder2 у меня есть файлы конфигурации в xml, которые позже могут быть изменены программой, а в Folder3 у меня есть jar-файлы, от которых зависит основная программа.

Теперь я хочу развернуть эту программу с помощью Java webНачинаю понимать, что запуск через Интернет позволяет нам развертывать программы с использованием 1 или более jar-файлов. Моя проблема в том, что мне нужна также структура каталогов. Может кто-нибудь предложить решение для этого.

Ответы [ 3 ]

2 голосов
/ 12 августа 2010

Как уже упоминалось, сценарий оболочки вызывает проблемы.Что он делает специально для «запуска программы»?

Для файлов конфигурации - «Папка 2», веб-запуск предоставляет сервис PersistenceService.У меня есть небольшое демо.(1)

Что касается банок в «Папке 3».Переместите их, а также файлы Jar в папки 2 & 1 в один каталог с именем 'lib'.Основной Jar и файлы конфигурации потребуются с нетерпением, что по умолчанию для JWS.Если какие-либо другие файлы Jar (например, '3') могут не понадобиться немедленно или вообще, их следует развернуть как download = 'lazy'.

Для доступа к локальной файловой системе - для чтения входных данныхпользователем или написанием нового файла, который он создал - приложение JWS. обычно должен иметь цифровую подпись и доверие.Но JWS также предоставляет гораздо более ограниченную форму доступа через объект FileContents .Для более подробной информации смотрите демо.файловой службы на странице, указанной ниже.(1)

1) Демонстрации API JNLP , включая объект PersistenceService & FileContents.

0 голосов
/ 12 августа 2010

Java WebStart не предоставляет никакой помощи в создании filsystem так, как вам это нужно - он только предоставляет программные компоненты для памяти.

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

Если вам нужно только запустить скрипт оболочки, вы можете сохранить содержимое этого файла как ресурс внутри вашего jar, создавать временный файл при каждом запуске, помещать желаемое содержимоевнутри, и выполните его, а затем удалите временный файл, когда вы закончите.Обратите внимание, что это приводит вас в удивительный мир подписи кода, который довольно утомителен.

0 голосов
/ 12 августа 2010

Я думаю, вам придется внести некоторые изменения в структуру для развертывания веб-запуска (возможно, упаковать его как jar или набор jar-файлов), также запуск будет осуществляться через JNLP, через webstart, а не Run.sh.

Кроме того, вам придется подписать ваше развертывание, если вам нужны разрешения для записи на диск.

См. FAQ для веб-старта здесь

Также ознакомьтесь с руководством разработчика о том, как выполнить развертывание с помощью веб-запуска

...