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

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

Sub TransposeData()

    Const FirstDataRow As Long = 2              ' presuming row 1 has headers
    Const YearColumn As String = "A"            ' change as applicable

    Dim Rng As Range
    Dim Arr As Variant, Pos As Variant
    Dim Rl As Long, Cl As Long
    Dim R As Long, C As Long
    Dim i As Long

    With ActiveSheet
        Cl = .UsedRange.Columns.Count - .UsedRange.Column + 1
        Rl = .Cells(.Rows.Count, Columns(YearColumn).Column).End(xlUp).Row
        Set Rng = Range(.Cells(FirstDataRow, YearColumn), .Cells(Rl, Cl))
    End With
    Arr = Rng.Value
    ReDim Pos(1 To (UBound(Arr) * UBound(Arr, 2)), 1 To 2)

    For R = 1 To UBound(Arr)
        For C = 2 To UBound(Arr, 2)
            i = i + 1
            Pos(i, 1) = Arr(R, 1)
            Pos(i, 2) = Arr(R, C)
        Next C
    Next R

    R = Rl + 5                                  ' write 5 rows below existing data
    Set Rng = ActiveSheet.Cells(R, YearColumn).Resize(i, 2)
    Rng.Value = Pos
End Sub
12
задан Omar Kooheji 19 November 2008 в 04:59
поделиться

7 ответов

Нет никакого 'лучшего способа'. Это зависит от того, развертываете ли Вы приложение колебания, webstart, апплет, библиотеку или веб-приложение. Каждый отличается.

На точке 2, Вы корректны. Файлы банки не могут содержать другие файлы банки. (Ну, технически они могут, его просто, что внутренний файл банки не будет на Вашем пути к классу, эффективно означая, что файлы банки не содержат файлы банки).

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

В целом большинство Java-разработчиков использовало бы Муравья Apache для достижения развертывания. Его хорошо зарегистрированный, поэтому смотрите.

6
ответ дан 26 October 2019 в 10:47
поделиться

(1) Альтернатива муравью, которого можно хотеть рассмотреть, является знатоком.

Краткое введение знатоку может быть найдено здесь.

Для создания JAR у знатока есть плагин банки, который может автоматизировать процесс обеспечения всех зависимых банок, перечислены в декларации Вашей банки.

При использовании затмения то загрузите интеграцию знатока также.

(2) Другая альтернатива должна использовать OneJar (правовая оговорка: не попробовали это самостоятельно).

6
ответ дан 26 October 2019 в 10:47
поделиться

Необходимо попробовать FatJar. Это - плагин Eclipse, который просто щелчком правой кнопкой по Проекту может создать файл JAR со всем, что необходимо запустить приложение, включая необходимое третье лицо JAR.

Мы каждый день используем его, в conjuction с JSmooth, чтобы создать исполняемые файлы, развернуть наши пакеты программного обеспечения на наших клиентах и работы как очарование.

3
ответ дан 26 October 2019 в 10:47
поделиться

Вы могли посмотреть на другие проекты Java (например, JMeter, SquirrelSQL, JEdit, Cernunnos, и т.д.). Каждый пакет их приложения немного по-другому, поэтому рассмотрите свои цели при рассмотрении их.

0
ответ дан 26 October 2019 в 10:47
поделиться

Ну, если Вы говорите о развертывании автономного настольного приложения:

Прежде чем мы переключились на веб-запуск, мы создавали три архива развертывания, один для окон, один для Mac и один для других платформ.

На окнах мы успешно использовали Систему Установки Nullsoft Scriptable (известный, поскольку это - использование более старыми winamp версиями), и его задача Ant, хотя некоторые недостатки:

  • Это только применимо на окнах AFAIR
  • Необходимо сделать некоторую работу вручную, т.е. настройку созданного из мастера сценария AFAIR

Это может создать установку окон с записями меню "Пуск", с другой стороны. Там также существует плагин затмения для интегрированного редактирования сценария оболочки NSIS.

На Mac OS X существует задача Ant для создания .app файла из файлов Java так, чтобы можно было запустить его как собственное приложение OS X. Но остерегайтесь не записи любой установки на Ваш домашний dir и использования dir приложения вместо этого.

Для других необходимо ожидать, что они находятся в un*x ENV и развертывают приложение со сценарием оболочки для запущения приложения.

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

Если Вы хотите избавиться от всей упаковки и материала, необходимо серьезно рассмотреть использование веб-запуска. Мы сэкономили много времени начиная с переключения на него, т.е. упростили наш процесс развертывания, заботится об обновлениях и т.д.

Обновление 2014

Используйте плагин блока знатока, посмотрите раздел "Creating an executable jar"

1
ответ дан 26 October 2019 в 10:47
поделиться

Ответы варьируются в зависимости от того, какую вещь Вы создаете.

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

Публикация банки Знатоку repo с информацией об англичанине для отслеживания зависимостей является отличным выбором для библиотек также. Если Вы делаете это, опубликуйте свои координаты Знатока в Ваших документах!

При создании приложения эти два популярного выбора состоит в том, чтобы распределить zip/tar/whatever структуры развертывания ИЛИ использовать программу установщика. Если программа является видом выхода сервера вещи, первый намного более распространен. Последний более характерен для клиентов. Обычно программа установщика просто собирается разметить структуру развертывания и возможно сделать некоторые дополнительные задачи как установка в определенных для ОС местоположениях.

Для создания структуры развертывания (иначе "набор"), Вы захотите создать повторяемый процесс в любой системе сборки, которую Вы используете. У муравья есть обильные примеры этого, и у Знатока есть плагины блока, которые могут помочь. Обычно Вы будете хотеть включать банку своего кода, любых зависимостей, сценарии для запуска программы, возможно, JRE и любые другие ресурсы, в которых Вы, возможно, нуждались бы.

Если Вы хотите создать установщик, существует много опций, и бесплатных и коммерческих. Некоторые люди, которых я знаю, недавно имели хороший опыт со свободным IzPack, но проверяют Ваши опции.

3
ответ дан 26 October 2019 в 10:47
поделиться

Муравей. Это не лучшая вещь в мире, но это стандартно, это является апачским, и это работает. Существуют некоторые хорошие примеры в сети, как сделать простой build.xml для любого, и она имеет некоторые функции как 'военная' задача, которая знает, как поместить весь основной материал (классы, web.xml и т.д.) в файле банки для Вас. Можно также сказать этому забирать другие файлы конфигурации и банки, и это счастливо сделает это. Это также действительно умно о том, что скомпилировать. Вы даете ему каталог, и это находит все файлы Java и создает их, только если их classfile устарел, таким образом, Вы добираетесь, некоторые традиционные делают функциональность бесплатно без особых усилий.

0
ответ дан 26 October 2019 в 10:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: