如何确定哪个java实例加载了一个类

时间:2011-12-05 16:34:39

标签: java

我正在试图弄清楚系统是如何工作的。当我做'ps -A'时,我看到了几个java进程。有没有办法运行一个命令来检查一个java实例,让我知道从该实例加载所有jar或类(最好不要停止实例)?

4 个答案:

答案 0 :(得分:3)

您需要使用某些特定于Java的工具(例如VisualVM)来执行您要查询的内容。

答案 1 :(得分:3)

您可以使用jconsole或visualvm来获取正在运行的JVM的详细信息。如果你使用linux,这些需要xwindows。

此外,jps -v将告诉您用于启动JVM的命令行参数是什么。从那里你应该能够看到用于类路径的罐子。

答案 2 :(得分:0)

ps -Af

将显示用于启动该过程的确切命令。但是,它无法准确地告诉您调用的JAR文件已经加载了哪些库(尽管您可能会获得类路径以便进行推断)。

有关更多详细信息,您需要一个询问JVM的工具。

答案 3 :(得分:0)

如果Java应用程序服务器运行Web或企业(EAR)应用程序,则无法从命令行推断出所有使用过的jar。但你可以使用例如lsof命令列出给定java进程正在使用的所有文件。并从中过滤罐子。