Можно ли использовать java-отражения api или org.reflection api для загрузки классов Java во время выполнения во внешнем проекте, который не находится в нашем пути к классу? может кто-то ответить мне, если есть какой-либо другой способ загрузить классы extenal java во время выполненияМогу ли я загружать классы java внешнего проекта во время выполнения с использованием отражений или любым другим способом
ответ
Да, вы можете загружать классы с отражением api, которые не находятся в вашем фактическом проекте или под траекторией класса. Например, это работает с URLClassLoader
.
Чтобы загрузить более нескольких файлов, указанных в комментариях, вы можете перебирать файлы в каталоге. Для каждого файла вы можете использовать класс-загрузчик.
Вы можете получить файлы каталога с помощью файла-класса. Например:
Path p = Paths.get("");
File f = p.toFile();
String[] files = f.toAbsoluteFile().list();
Тогда у вас есть строковый массив файлов/каталогов. Если вы находитесь в каталоге, содержащем ваши файлы классов, вы можете просто перебирать массив и загружать их один за другим вашим ClassLoader
Я уже это сделал, но мое приложение хочет загрузить классы Java в пакете и хотеть прочитать конкретное. Аннотации в java-классах, как я могу достичь этого, файл cz jar содержит файлы .class? –
Прошу прощения, но я не понимаю, что должно делать ваша реализация. Или, говоря иначе, что делать с аннотациями. – Supahupe
Хорошо, дайте мне знать, как загружать несколько классов внутри банки с помощью отражений. Cz для метода name() принимает ровно одно имя класса. –
- 1. Могу ли я остановить программу во время выполнения любым другим способом, кроме как выбросив ошибку?
- 2. jQuery UI вкладки ИЛИ любым другим способом
- 3. Java: Могу ли я внедрить исключение во время выполнения во произвольный метод класса во время выполнения?
- 4. Можно ли загружать библиотеку во время выполнения?
- 5. Как загрузить классы во время выполнения из папки или JAR?
- 6. Определить классы во время выполнения
- 7. Dalvik runtime компилятор или другим способом, чтобы загрузить класс во время выполнения
- 8. , ссылающийся на Luis by replaceDialog или любым другим способом
- 9. Как я могу получить классы javafx во время выполнения?
- 10. C# динамические классы во время выполнения?
- 11. Использование курсора или цикла while или любым другим способом?
- 12. Как выполнить typecastng во время выполнения в java?
- 13. CDI - классы ввода во время выполнения
- 14. Как скрыть публичные классы в библиотеке Jar с помощью ProGuard (или любым другим способом)?
- 15. может загружать баннеры webservice во время выполнения
- 16. Загружать файлы конфигурации из другого проекта во время выполнения
- 17. Могу ли я загружать классы SimpleMembership в EntityFramework?
- 18. PostgreSQL Crosstab со счетом Query или любым другим способом
- 19. Получить внутренний текст по ID или любым другим способом C#
- 20. Могу ли я/Должен ли я добавлять поставщиков проверки подлинности во время выполнения с использованием Servicestack
- 21. Сортировка или обновление таблицы с использованием порядка или любым другим способом
- 22. Загрузка класса: время компиляции или время выполнения
- 23. Могу ли я изменить datsource модели отчета во время выполнения
- 24. Можем ли мы обмануть аннотации в java, используя инструмент dex2jar или любым другим способом?
- 25. Как сгруппировать по внешним ссылкам или любым другим способом?
- 26. Java: Как я могу получить общий тип во время выполнения?
- 27. Могу ли я изменить порт встроенного Tomcat во время выполнения?
- 28. Java: Как я могу изменить размер JPanel во время выполнения?
- 29. Проблема: необходимо выполнить COM InterOp во время выполнения с использованием отражений Передача указателей в качестве параметров?
- 30. Сохраняет ли Java оптимизацию во время выполнения?
Существует URLClassLoader; можно использовать URI файлов: «file:/.... .jar». Более ориентированной на плагин будет система OSGi с модулями и определенными жизненными циклами. –
Вот пример того, как мы динамически загружаем плагины с помощью URLClassLoader в нашем приложении: https://github.com/taconaut/ums-mlx/blob/master/core/src/main/java/net/pms/plugins/PluginsFactory.java # L247 – Philippe