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

如何确定哪个java实例加载了类,java,Java,我想弄清楚一个系统是如何工作的。当我做“ps-a”时,我看到几个java进程。是否有一种方法可以运行一个命令来检查java实例,并让我知道从该实例加载了哪些JAR或类(最好不停止该实例)?您需要使用一些特定于Java的工具,例如,来完成您正在查询的内容。您需要使用一些特定于Java的工具,例如,来完成您正在查询的内容 ps -Af 将显示用于启动进程的确切命令。但是,它不能确切地告诉您所调用的JAR文件加载了哪些库(尽管您可能会得到类路径以便进行推断) 要了解更多细节,您需要一个询问JVM的工

我想弄清楚一个系统是如何工作的。当我做“ps-a”时,我看到几个java进程。是否有一种方法可以运行一个命令来检查java实例,并让我知道从该实例加载了哪些JAR或类(最好不停止该实例)?

您需要使用一些特定于Java的工具,例如,来完成您正在查询的内容。

您需要使用一些特定于Java的工具,例如,来完成您正在查询的内容

ps -Af
将显示用于启动进程的确切命令。但是,它不能确切地告诉您所调用的JAR文件加载了哪些库(尽管您可能会得到类路径以便进行推断)

要了解更多细节,您需要一个询问JVM的工具

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


要了解更多详细信息,您需要一个查询JVM的工具。

您可以使用jconsole或visualvm获取运行JVM的详细信息。如果您使用的是linux,则需要xwindows


此外,jps-v将让您知道用于启动JVM的命令行参数是什么。从那里,您应该能够看到类路径使用了哪些JAR。

您可以使用jconsole或visualvm获取运行JVM的详细信息。如果您使用的是linux,则需要xwindows


此外,jps-v将让您知道用于启动JVM的命令行参数是什么。从这里,您应该能够看到类路径使用了哪些JAR。

如果Java应用程序服务器运行web或企业(EAR)应用程序,您不能从命令行推断出所有使用的JAR。但您可以使用例如
lsof
命令列出给定java进程正在使用的所有文件。并从中筛选JAR。

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

您的最佳选择可能是使用visualvm/etc连接到流程。您的最佳选择可能是使用visualvm/etc连接到流程。