Как включить файлы .class в мой проект в Eclipse? (Ява)
Эй, все. Я работаю над проектом для школы, где нам предоставляется файл .class, но не источник для включения в наш код. Я использую Eclipse, и я хочу включить файл в свой проект, чтобы я мог создавать объекты из него и использовать его.
Файл - TokenizerImpl.class, и я хочу использовать его следующим образом:
TokenizerImpl tokenizer = new TokenizerImpl(foo);
Я помещаю файл в папку проекта, и Eclipse говорит, что "TokenizeImpl не может быть разрешен как тип", который, как я полагаю, означает, что он не может найти класс или источник. Я попытался поместить его в папку "bin" проекта и получил ту же ошибку. Поиск Google и поиск SO, похоже, не отвечали на это, поэтому я дам ему шанс. Как мне это сделать, мудрые?
Изменить: О, дорогая, я обнаружил, что проблема была совсем другая. Эти решения работали нормально, но я просто забыл создать интерфейс Tokenizer, который реализует TokenizerImpl. Doh. Спасибо за вашу помощь, но я много узнал о затмении.
Ответы
Ответ 1
Вы можете добавить каталог, содержащий файлы классов, в проект Eclipse, только если он находится внутри одного из ваших проектов Eclipse, либо в сгенерированном каталоге, либо в том, что вы создали.
Это можно сделать, добавив папку класса в путь сборки Java приложения. Вы можете установить это в свойствах проекта, посетив путь сборки Java → Библиотеки → Добавить классную папку. Имейте в виду, что вам нужно будет указать корневую папку, содержащую файлы классов в своих пакетах.
Поэтому, если вы хотите получить доступ к компилятору com.stackoverflow.Example.class в каталоге классов в проекте A (но не в пути сборки проекта A), тогда вы должны добавить "классы" в качестве класса папке, а не класса /com/stackoverflow в качестве папки класса.
Ответ 2
Проект → Свойства → Путь сборки Java → Библиотеки → Добавить папку внешнего класса
Папка должна содержать иерархию пакетов, т.е. если ваш класс действительно является foo.bar.TokenizerImpl, он должен находиться в подкаталоге foo/bar.
Ответ 3
Вы также можете JAR файлы классов, которые вы хотите добавить, и добавьте JAR файл в зависимости от сборки. Для меня это самое чистое решение. Конечно, в JAR файле должна быть правильная структура каталогов.
Щелкните правой кнопкой мыши в своем проекте и выберите Java Build Path для добавления новых зависимостей.
Копирование его в папку bin не будет работать очень хорошо, потому что оно предназначено для хранения результатов скомпилированных источников. Как только вы очистите что-нибудь, файл исчезнет.
Ответ 4
Другие люди теперь дали лучшие ответы. Этот "ответ" заключался в основном в получении информации от ОП, потому что исходный вопрос на самом деле не сказал нам полностью, что было опробовано. Теперь есть два ответы, которые действительно отвечают на вопрос в долгосрочной перспективе.
Мой исходный ответ оставлен ниже для контекста.
Скопировали ли вы его в папку bin в Eclipse или вне Eclipse? Если вы сделали это за пределами Eclipse, вам нужно щелкнуть правой кнопкой мыши по папке "bin" и выбрать "обновить" для Eclipse, чтобы увидеть новый файл.
Файл A *.class в соответствующей папке (в зависимости от его пакета) в каталоге bin должен сделать это.
Ответ 5
или поместите все в файл jar и добавьте это как внешнюю банку.