OQL все экземпляры из пакета
Это возможно в OQL
получить все объекты, которые принадлежат пакету? Или я могу запросить с wildcards
?
Как подсказал @haridsv, я попробовал:
SELECT * from "com.example.*"
а также
SELECT a from "com\.example\..*"
но в VisualVM
Он жалуется, что такого пакета не существует.
Четное
SELECT a from "java.io.File" a
Не удается.
Спасибо!
ssedano.
2 ответа
Решение
Я нашел ответ в справке VisualVM OQL.
select filter(heap.classes(), "/com.example./(it.name)")
Вы можете использовать регулярное выражение, как это:
SELECT * from "<packagename>.*"
Если имя пакета "java.io", вы должны использовать:
SELECT * from "java\.io\..*"
Обратите внимание на кавычки вокруг регулярного выражения и то, как точки в пути защищены.
Из ограниченной документации VisualVM:
- выберите все классы, у которых есть шаблон имени java.net.*
select filter(heap.classes(), "/java.net./.test(it.name)")
https://visualvm.github.io/documentation.html
Уловка в "тесте (it.name)"