Я уже знаю, как получить все доступные пакеты, однако я пытаюсь получить только те пакеты, которые я сделал в своем собственном проекте Java.
Например, я не хочу, чтобы java.utilпоявляются в списке пакетов.
Я использую этот код для сбора классов:
List<String> result = new LinkedList<String>();
Package[] packages = Package.getPackages();
for(Package pack : packages)
{
result.add(pack.getName());
}
И это работает очень хорошо, теперь я просто хочу избавиться от всехсистемные пакеты.
Есть ли способ отфильтровать пакеты, чтобы остались только те, которые я определил?
PS, я не беспокоюсь об эффективности, цель этого может бытьнастолько медленно, насколько это необходимо, он будет запускаться только один раз в начале моей программы.
Я рассмотрел несколько связанных вопросов, но ни один из них не является тем, что я ищу.
Если есть способ определить, является ли имя пакета системным, это отлично сработает.
РЕДАКТИРОВАТЬ!
Я делаю это как часть API, и потомуиз этого я не могу просто сравнить имя пакета с установленным токеном, чтобы увидеть, если яЭто имя пакета, которое я использую, я не хочу, чтобы какое-либо редактирование требовалось, просто поместите файл класса в мой проект и используйте его, независимо от того, какие имена пакетов я выберу.
Один метод Iпопытался бы, как бы это ни казалось, работать и выдавал мне случайные ошибки, сканирует файл jar, чтобы проверить, есть ли эквивалентный каталог для имени пакета.Однако всякий раз, когда я сканирую файл JAR, я получаю сообщение об ошибке «Не удается получить доступ к файлу JAR, используется ли он другим процессом?».
Сканирование файла JAR определенно сработает, чтобы увидеть, существует ли класс в моем проекте(файл JAR), но другое ограничение заключается в том, что я должен скомпилировать его для тестирования, не могу просто протестировать его в Eclipse, я 10 раз редактировал код, пытаясь заставить поиск файла JAR работать, и каждый раз получал ошибки доступа, потому что javaw.exe использует файл jar, который не позволяет мне читать файлы внутри него.
Edit2!
Кто-то предложил мне составить список всех известных системных классов и сравнить его сэтот список, который сработал бы, если бы в разных JDK не было разных классов, поэтому меня интересует новый вопрос, есть ли способ получить все jar-файлы, которые являются частью текущей системной библиотеки JRE?Тогда я смогу прочитать их и добавить все их пакеты в фильтры.