![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| worsvch |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
Пытаюсь заархивировать файл с помощью 7z, но вылетает исключение
Exception in thread "main" java.lang.NoClassDefFoundError: org/tukaani/xz/LZMAInputStream в следующем месте:
Весь код:
Уже и jar файл этот подключил с помощью import (import org.tukaani.xz.LZMA2InputStream;), но исключение как вылетало, так и вылетает. Подскажите, пожалуйста, что нужно исправить, чтобы исключение перестало вылетать и файл был заархивирован? Это сообщение отредактировал(а) worsvch - 4.5.2014, 09:14 |
||||
|
|||||
| Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 7 Всего: 17 |
Я с этим пакетом не работал, но возникает такое впечатление, что на вход write должен подаваться не массив байт а входной поток, из которого write будет читать данные. Проверьте, что нужно подавать в качестве аргумента.
-------------------- Mirkes |
|||
|
||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
подключи к проекту xz-1.4.jar и будет тебе счастье!
Вот как это работает у меня (с использованием библиотек commons-compress-1.8.jar и xz-1.4.jar):
Это сообщение отредактировал(а) Pawl - 4.5.2014, 21:27 -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| worsvch |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
Действительно ошибка пропала, но файл который внутри архива не читается, говорит "Ошибка диска", хотя вне архива он нормально открывается, сохранял в другие места, на другие диски, не помогло. |
|||
|
||||
| Pawl |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
1) вместо надо
и вообще эта строчка тут не нужна, т. к. ты уже создал entry с именем файла:
2) Вот так
ты просто создаешь массив байт определенной длины, но не инициализируешь его данными из файла. Надо делать, как в моем примере. Применительно к твоему файлу, рабочий код будет выглядеть так:
-------------------- В действительности всё совсем не так, как на самом деле |
||||||||
|
|||||||||
| worsvch |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
Сделал как вы написали, та же ошибка
|
|||
|
||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
та блин, не может быть! Ты код просто скопипастил или что-то менял? Если нет, то какие библиотеки используешь? Для чистоты эксперимента Создай новый проект, подключи к нему только commons-compress-1.8.jar и xz-1.4.jar и скопируй туда мой код. У меня в такой конфигурации все работает. Да, и чисто на всякий случай: файл c:\\111\\test.txt должен существовать, открыт для чтения, копирования и пр., и в нем должен быть какой-то текст. Это сообщение отредактировал(а) Pawl - 5.5.2014, 20:30 -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| worsvch |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
1. Делаю в Eclipse for java 2. commons-compress-1.8.jar и xz-1.4.jar - именно их и подключил, притом создавал zip-архив, с ним проблем не было, проблема именно с 7z 3. Копировал именно ваш код, тот же результат. 4. Файл существует, открыт для чтения, текст есть. Ради эксперимента пробовал создать архив программой 7-zip: в этом случае архив создается корректный, но используется метод LZMA, LZMA2 я в этой программе не нашел Протестировал созданный java-программой 7-zip архив, думаю проблема в использовании LZMA2. Была следующая ошибка: "Неподдерживаемый метод сжатия" Добавлено через 10 минут и 26 секунд С этой проблемой разобрался: архив нормально открывается через другие архиваторы. Обнаружилась еще одна проблема, если архивировать к примеру бинарный файл размером примерно несколько десятков мегабайт, то вылетает исключение java.lang.OutOfMemoryError: JavaHeapSpace. Это сообщение отредактировал(а) worsvch - 5.5.2014, 21:08 |
|||
|
||||
| Pawl |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Ну слава Богу! А каким вы изначально пользовались? У меня есть и winzip и winrar и встроенные в total commander архиваторы - все с архивом работали прекрасно...
"несколько десятков мегабайт" - это сколько именно? Я архивировал файл в 70 МБ - все сработало, правда, секунд за 20, и оперативки было задействовано 68% (у меня ее 4 ГБ). Что до JavaHeapSpace, отвечу цитатой из хабра:
Трудно в данном случае регулировать количество создаваемых объектов, т. к. не известно, как именно работают библиотеки commons-compress-1.8.jar и xz-1.4.jar. Тут может помочь комп помощнее... -------------------- В действительности всё совсем не так, как на самом деле |
||||
|
|||||
| worsvch |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 23.4.2009 Репутация: нет Всего: нет |
1. Pawl вы действительно мне очень помогли. Спасибо вам за это.
2. Изначально пользовался 7-zip 3. Я архивировал файл размером 65мб. Но нужно будет архивировать и файлы размером больше гигабайта, поэтому и был выбран 7z, так как прилично сжимает Это сообщение отредактировал(а) worsvch - 5.5.2014, 23:17 |
|||
|
||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Чёт благодарности в репе не заметил Понятно. Как раз этого архиватора у меня нет...
7z может и прилично сжимает, но те 7z- архивы, которые делаются при помощи commons-compress, сжаты так себе. Не знаю, как у вас, а у меня "сжатые" бинарные файлы получались сопоставимого размера, а архивы с текстовыми файлами вообще имели размер, больший, чем не сжатые файлы! -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |