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)"

Другие вопросы по тегам