Сжатие и распаковка файла 7z в java

Я хочу сжать файл в формат zip, rar и 7z, используя код Java. Также я хочу распаковать эти файлы в указанном месте. Кто-нибудь может сказать мне, как сжимать и распаковывать файлы с помощью 7-zip в java?


person user1728310    schedule 08.10.2012    source источник
comment
Вы пытались ввести 7zip java в поисковую систему? Вы бы нашли такие совпадения, как 7-Zip-JBinding.   -  person David Schwartz    schedule 08.10.2012
comment
Я пробовал, но смог получить только список файлов.   -  person user1728310    schedule 08.10.2012
comment
Перейдите на эту страницу . Справа вверху есть ссылка, если вам нужна версия для Windows.   -  person David Schwartz    schedule 08.10.2012
comment
Спасибо, Дэвид. Я использовал эти банки: sevenzipjbinding.jar sevenzipjbinding-Allplatforms.jar Но я думаю, что их можно использовать только для извлечения сжатого файла. Есть ли способ сжать файлы с помощью 7-zip?   -  person user1728310    schedule 09.10.2012
comment
@user1728310 user1728310 Поскольку вы перепробовали так много вещей, не могли бы вы рассказать нам, что вы пробовали?   -  person Code-Apprentice    schedule 10.10.2012
comment
Как я уже говорил ранее, я использовал sevenzipjbinding.jar sevenzipjbinding-Allplatforms.jar, и я могу распаковывать файлы, используя эти jar-файлы.   -  person user1728310    schedule 10.10.2012
comment
Вы можете получить код для распаковки по следующей ссылке: sourceforge.net /projects/sevenzipjbind/forums/forum/757964/   -  person user1728310    schedule 10.10.2012
comment
@DavidSchwartz привязка означает собственный код. Это может быть не вариант в чистой среде Java.   -  person Thorbjørn Ravn Andersen    schedule 15.04.2013
comment
Возможный дубликат Как использовать LZMA SDK для сжатия/распаковки на Java   -  person Vadzim    schedule 16.02.2018


Ответы (3)


Я использовал: sevenzipjbinding.jar sevenzipjbinding-Allplatforms.jar

Теперь я могу распаковывать файлы с помощью этих банок.

Попробуйте эту ссылку для распаковки: http://sourceforge.net/projects/sevenzipjbind/forums/forum/757964/topic/3844899

person user1728310    schedule 04.12.2012

SevenZipBinding отлично подходит для распаковки, он даже автоматически определяет формат. Проблема в том, что он не может сжиматься. Вы можете создавать zip-архивы, используя ZIP4J. Однако он предлагает только простой почтовый индекс. LZMA, по-видимому, может сжимать отдельные файлы в архивы 7z, но я еще не пробовал.

person Stabby    schedule 06.08.2013

Вы также можете написать пакетный скрипт или просто выполнить встроенную команду, которую вы вызываете из java для извлечения и сжатия. Обратите внимание, что эта опция предназначена только для платформ Windows и требует некоторых навыков администратора. 7zip предоставляет исполняемый файл для облегчения этого. Я использовал это для одной из моих утилит и работал отлично. Если вы заинтересованы, я могу отправить вам код.

person Thakhani Tharage    schedule 31.03.2013
comment
Вы имеете в виду либо скрипт bash, который не очень часто работает в Windows, либо пакетный скрипт, который не очень часто работает в Windows. Есть даже системы, в которых есть Java, но вообще нет сценариев, например, в некоторых мобильных телефонах. - person Olathe; 15.05.2013
comment
Привет, Олат, предполагалось, что код будет работать в Windows, поэтому я имел в виду пакетный скрипт. В вопросе не уточнялось, будет ли он работать на Linux или Windows. Для вас сказать, что это не сработает, абсолютно смешно, поскольку я делал это раньше. Строка cmd = cmd /c + [7Zip APP] + x + [АРХИВ] + -o + [Пункт назначения]; Процесс процесса = Runtime.getRuntime().exec(cmd.toString()); 7 zip предоставляет приложение, которое вы можете использовать для извлечения и сжатия. Голосование против моего ответа??? . Это отлично работает на окнах - person Thakhani Tharage; 16.05.2013
comment
Это не обязательно идеально работает в Windows. Пользователь должен установить программное обеспечение 7-Zip без ошибок, чтобы оно заработало, что доставляет немало хлопот, особенно если пользователь совсем не разбирается в компьютерах (что становится еще более трудным, если у него также нет административные права; будут ли они вообще знать, что существует путь поиска оболочки, чтобы правильно его настроить?). Что еще более важно, существуют гораздо более простые мультиплатформенные решения, не требующие установки какого-либо дополнительного программного обеспечения и работающие на веб-серверах Linux и Android, где широко используется Java. - person Olathe; 01.06.2013
comment
В вопросах никогда не указывалась платформа, я рад, что есть независимая от платформы банка. Хотя не нужно было голосовать за это решение, поскольку оно работает в контексте вопроса. - person Thakhani Tharage; 02.06.2013