2013-07-23 1 views
0

Я попытаюсь проиллюстрировать проблему настолько просто, насколько смогу.Добавить новый класс в существующий JAR-файл (который содержит исходный код)

У меня есть файл JAR, который я извлек с помощью Winrar. (Файл jar содержит библиотеку Android с открытым исходным кодом).
Я хочу изменить этот JAR-файл, добавив новый класс в библиотеку.

Итак, вот мои шаги:
Сначала я создал класс с использованием Eclipse и задал имя пакета так же, как имя пакета библиотеки Android.
Во-вторых, я скопировал этот файл Java в папку других java-файлов в библиотеке.
В-третьих, я попытался скомпилировать JAVA-файл через CMD с помощью javac.

Путь нового Java-файла и других .Java и .class файлов из библиотеки: C:\com\example\core\
Имя нового Java-файла будет: "MyNewClass.java"
Команда Я бегу через ЦМД: javac C:\com\example\core\MyNewClass.java

Но во время компиляции я получаю много ошибок, говорящих: «Не могу найти символы.

Я искал решение этой проблемы, но не мог понять, как ее решить и сделать новый JAR-файл еще одним классом, который я создал отдельно.

Что мне не хватает?

+0

Если вы используете JAR-проводник, вы можете просто перетащить в него файл .class. Убедитесь, что путь пакета существует и соответствует тому, как он объявлен в вашем классе. –

+0

Если это библиотека с открытым исходным кодом, с которой вы работаете, почему бы не получить исходный код, добавить свои изменения и перекомпилировать весь shebang? Это кажется гораздо более удобным, чем скомпилированный код и различные инструменты. –

+0

@idish: Вы спрашиваете меня, как получить исходный код для библиотеки, которую вы не упоминаете по имени? У меня нет подсказки. Вы утверждали, что это с открытым исходным кодом, что означает, что исходный код должен быть доступен где-то. Если это не так, это не библиотека с открытым исходным кодом. –

ответ

1

Согласно более ранним комментариям:

Вместо того, чтобы пытаться изменить JAR , вы можете получить доступ ко всему исходному коду библиотеки Universal Image Loader, клонировав репозиторий с помощью git или нажав «Скачать ZIP» в правой части страницы, с которой вы связались.

Как только у вас есть источник, импортируйте библиотеку в свою среду IDE. Оттуда вы сможете построить все с нуля, внесите любые корректировки/модификации, которые вам нравятся, и т. Д.

+0

Отлично, спасибо.! – idish

+0

Рад помочь! –

0

Ваш путь к классу может быть неправильным или может быть ошибка в имени пакета.

Когда компилятор Java компилируется, он создает список всех используемых идентификаторов. Если он не может найти то, на что ссылается идентификатор, он не может завершить компиляцию. Это то, что не может найти сообщение об ошибке символа, говорит, что у него недостаточно информации, чтобы скомпоновать то, что хочет выполнить код Java.

0

Try:

javac -cp com/* C:\com\example\core\MyNewClass.java 

Это должно сделать компилятор в курсе всех других классов под ком/...

Смежные вопросы