OQL包中的所有实例

时间:2012-09-12 09:33:45

标签: jvm oql

是否可以在OQL中检索属于包的所有对象?或者我可以使用wildcards查询吗?

正如@haridsv建议我尝试的那样:

SELECT * from "com.example.*"

SELECT a from "com\.example\..*"

但在VisualVM中它抱怨没有这样的包。

即使

SELECT a from "java.io.File" a

失败。

谢谢!

ssedano。

3 个答案:

答案 0 :(得分:5)

我在VisualVM OQL help找到了答案。

select filter(heap.classes(), "/com.example./(it.name)")

答案 1 :(得分:4)

你可以使用这样的正则表达式:

SELECT * from "<packagename>.*"

如果包名是“java.io”,您将使用:

SELECT * from "java\.io\..*"

请注意正则表达式周围的引号以及路径中的点如何受到保护。

答案 2 :(得分:0)

从VisualVM受限文档中:

  • 选择所有具有名称模式java.net的类。*

select filter(heap.classes(), "/java.net./.test(it.name)")

https://visualvm.github.io/documentation.html

诀窍在“ test(it.name)”中