Библиотека Java для создания файлов кабинета в Unix?

#java

#java

Вопрос:

Существует ли библиотека Java для создания файлов кабинета в Unix. Мне не нужна никакая поддержка сжатия. Я просто хочу создать обычный cab-файл, используя Java.

Что-то похожее на cablib (http://sourceforge.net/projects/cablib /), которую можно использовать только для чтения файлов cab, была бы идеальной.

Если библиотеки действительно нет, могу ли я использовать возможный обходной путь? Например. создать ZIP-файл и каким-то образом преобразовать его в CAB-файл?

Комментарии:

1. Инструмент lcab утверждает, что способен создавать файлы кабинета MS.

2. Да, я тоже собирался это сказать. Это не библиотека Java, но если вы можете позволить себе вызов exec, эта команда сделает это возможным.

Ответ №1:

Если библиотеки действительно нет, могу ли я использовать возможный обходной путь?

В комментариях предлагается использовать инструмент Linux Icab.

Например. создать ZIP-файл и каким-то образом преобразовать его в CAB-файл?

Формат ZIP-файла отличается слишком во многих отношениях, чтобы можно было простым преобразованием превратить ZIP-файл в CAB-файл.

Ответ №2:

Редактировать: Приведенный ниже ответ не является чисто Java-решением. В документации Ant по задаче CAB говорится, что она основана на инструменте третьей стороны: либо MS «CABARC», либо libcabinet с открытым исходным кодом, который, похоже, больше не существует. Таким образом, этот подход не имеет преимуществ по сравнению с системным вызовом третьей стороны.

Предыдущий ответ (сначала прочитайте выше):

Если вам нужен чистый Java-способ создания cab-файлов (а не их извлечения), вы можете использовать встроенную в ant задачу «cab».

Это дает вам несколько вариантов:

  1. Вызовите задачу ant из вашего Java-кода, используя класс запуска ant;
  2. Найдите исходный код для определения задачи (здесь) и удалите ссылки на контекст ant, чтобы создать собственную утилиту извлечения Cab
  3. Запустите ant с помощью системного вызова.