2013-10-07 3 views
0

Я только что написал приложение Java, чтобы поговорить с машиной крови. И он отправляет свои данные на веб-сервер, используя защиту OAuth и XML, и приложение отлично работает.Распространение Java-приложения и файлов

Теперь я должен распространять его среди клиентов, у которых есть эти машины. Эта программа находится в файле .jar, а для нее также требуются другие .jar-файлы, которые находятся в моей папке project/dist.

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

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

Каков наилучший способ для этого, я попытался скопировать папку .jar и dist (в соответствии с инструкциями, которые вышли из netbeans), но когда я запускаю java -jar myfile.jar, он печатает текст Я получил от IOException, потому что я не включил .png-файлы.

код для PNG файлов: Im с помощью этого:

try 
    { 
     databaseimage = ImageIO.read(new File("image/database.png")); 
     databaseDisconnectedImage = ImageIO.read(new File("image/database_delete.png")); 

    } 
    catch (IOException ioe) 
    { 
     System.out.println("Problem Creating Systray: "+ioe.getMessage()+" Current Working Directory is: "+System.getProperty("user.dir")); 
    } 
+0

Ответ на загрузку PNG заключается в том, как вы открываете файлы. Взгляните на этот вопрос: http://stackoverflow.com/questions/403256/how-do-i-read-a-resource-file-from-a-java-jar-file –

+0

См. Редактирование ... –

+0

очевидно, я знаю, что могу включить папку с изображениями. Но я хочу распространять это приложение. Каков наилучший способ сделать это? –

ответ

0

Heavy удара решение использовать Maven и создать исполняемый банку, а.к.а. сборки, а.к.а. банку-с-зависимостей. Баннер может содержать как свои зависимости, так и метаданные для правильной работы.

java -jar Client-1.0-SNAPSHOT-jar-with-dependencies.jar 

Будет работать. Я предполагаю, что существует аналогичное решение с использованием Ant, который является еще одним инструментом для создания Java-программ.

Подробнее вручную: просто подумайте о второй - любой команде, включая путь к классу, который вы используете для запуска вашей программы, обязательно сохраните ее в скрипте. Все файлы, которые ему нужны, связывают его с .zip и отправляют его с инструкциями по распаковке и cd. В конечном счете, вы просто запускаете кучу файлов, вам просто нужно отправить их и сохранить структуру каталогов, чтобы ваш скрипт работал.

1

У вас есть несколько альтернатив, включая следующие:

  • Построить инсталлятор, который устанавливает соответствующие файлы на компьютере пользователя. Вы можете либо написать его с нуля, либо использовать коммерческий инструмент с открытым исходным кодом для создания установщика. (Установка на несколько типов операционных систем усложняется ...)

  • Реструктурируйте приложение, чтобы все ресурсы (например, изображения) извлекались через путь к классам, а не напрямую из файловой системы. Затем создайте исполняемый файл «Uber-JAR», взломав все зависимые JAR и ресурсы, собрав файлы в одно дерево и JAR-дерево. (JAR становится исполняемым, добавляя в манифест пару записей).

  • Создайте пусковую установку JNLP для приложения. Это работает только в том случае, если конечный пользователь сможет получить доступ к веб-сайту, на котором размещаются файлы приложений, но он решительно решает проблемы обновления приложения и гарантирует, что пользователь использует современную JVM.

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

Смежные вопросы