是否可以OQL
检索属于一个包的所有对象?或者我可以查询wildcards
吗?
正如@haridsv 建议的那样,我尝试过:
SELECT * from "com.example.*"
和
SELECT a from "com\.example\..*"
但VisualVM
其中抱怨说不存在这样的包裹。
甚至
SELECT a from "java.io.File" a
失败。
谢谢!
塞达诺。
您可以像这样使用正则表达式:
SELECT * from "<packagename>.*"
如果包名称是“java.io”,您将使用:
SELECT * from "java\.io\..*"
请注意正则表达式周围的引号以及路径中的点如何受到保护。
我在VisualVM OQL 帮助中找到了答案。
select filter(heap.classes(), "/com.example./(it.name)")
来自 VisualVM 有限的文档:
select filter(heap.classes(), "/java.net./.test(it.name)")
https://visualvm.github.io/documentation.html
诀窍在于“测试(it.name)”