Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Много jar библиотек, как быть? 
:(
    Опции темы
Rusico
Дата 26.5.2006, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.5.2004

Репутация: нет
Всего: нет



Привет.
Создаю JAR-архив, в файл-манифест добавляю Class-path:... (около 15 jar-ов). При выполнении команды jar cvmf ... ругается на слишком длинную строку.
Если список jar-ов уменьшить - то всё в порядке.
Как быть? Для работы с JasperReports необходим весь его lib. 
PM MAIL   Вверх
powerOn
Дата 26.5.2006, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Извращенский способ: Разархивируешь все классы, а потом их зазипуешь в один jar архив. Но все это с учетом каталогов.  

Это сообщение отредактировал(а) MoonCat - 26.5.2006, 11:50


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Rusico
Дата 26.5.2006, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.5.2004

Репутация: нет
Всего: нет



раньше, когда работал под Win-дой, JBuilder так и делал, а сейчас работаю под SuSE и JBuilder у меня бесплатный - он так не может, а в ручную не хоца. 
PM MAIL   Вверх
YuG
Дата 26.5.2006, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 20.2.2006

Репутация: нет
Всего: 4



Rusico, есть два способа борьбы:
Первый:
Class-Path: lib1.jar lib2.jar \
lib3.jar lib4.jar

Второй:
Class-Path: lib1.jar 
Class-Path: lib2.jar 
Class-Path: lib3.jar 
Class-Path: lib4.jar 

Ограничения на стороку, если не ошибаюсь, 512 символов.
см. исходники java.util.jar.Manifest:

Код

    /**
     * Reads the Manifest from the specified InputStream. The entry
     * names and attributes read will be merged in with the current
     * manifest entries.
     *
     * @param is the input stream
     * @exception IOException if an I/O error has occurred
     */
    public void read(InputStream is) throws IOException {
    // Buffered input stream for reading manifest data
    FastInputStream fis = new FastInputStream(is);
    // Line buffer
    byte[] lbuf = new byte[512];
    // Read the main attributes for the manifest
    attr.read(fis, lbuf);
    // Total number of entries, attributes read
    int ecount = 0, acount = 0;
    // Average size of entry attributes
    int asize = 2;
    // Now parse the manifest entries
    int len;
    String name = null;
        boolean skipEmptyLines = true;
    while ((len = fis.readLine(lbuf)) != -1) {
        if (lbuf[--len] != '\n') {
        throw new IOException("manifest line too long");
        }
        if (len > 0 && lbuf[len-1] == '\r') {
        --len;
        }
            if (len == 0 && skipEmptyLines) {
                continue;
            }
            skipEmptyLines = false;

        if (name == null) {
        name = parseName(lbuf, len);
        if (name == null) {
            throw new IOException("invalid manifest format");
        }
        } else {
        // continuation line
        name = name + new String(lbuf, 0, 1, len-1);
        }

        if (fis.peek() == ' ') {
        // name is wrapped
        continue;
        }

        Attributes attr = getAttributes(name);
        if (attr == null) {
        attr = new Attributes(asize);
        entries.put(name, attr);
        }
        attr.read(fis, lbuf);
        ecount++;
        acount += attr.size();
        //XXX: Fix for when the average is 0. When it is 0, 
        // you get an Attributes object with an initial
        // capacity of 0, which tickles a bug in HashMap.
        asize = Math.max(2, acount / ecount);

        name = null;
            skipEmptyLines = true;
    }
    }

 
PM WWW ICQ Skype   Вверх
Rusico
Дата 26.5.2006, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.5.2004

Репутация: нет
Всего: нет



Спасибо, попробую

Добавлено @ 15:00 
Способ №2  не работает, в реале пишет только последний Class-path и всё 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0760 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.