#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».
Это дает вам несколько вариантов:
- Вызовите задачу ant из вашего Java-кода, используя класс запуска ant;
- Найдите исходный код для определения задачи (здесь) и удалите ссылки на контекст ant, чтобы создать собственную утилиту извлечения Cab
- Запустите ant с помощью системного вызова.