获取 tomcat 溢出系统属性

Get tomcat to spill system properties

我用谷歌搜索了所有我能想到的东西,但找不到任何东西。

有谁知道如何让 tomcat 转储当前运行时环境的 System.getProperties() 的输出?有时会有用。

根据我的回答 ,创建一个包含以下内容的 JSP:

<%@ page import="java.util.Properties" %>
<%@ page import="java.util.Set" %>

<%
Properties p = System.getProperties();

Set<String> keys = p.stringPropertyNames();
for (String key : keys)
  out.println(key + " : " + p.getProperty(key));

%>

记住你不应该向管理员以外的任何人透露这个(例如,如果存储在 属性 中,即使是开发团队也不应该知道数据库密码)。

如果您使用 java 任务控制工具,您实际上可以复制粘贴这些值:

$JAVA_HOME/bin/jmc

针对您的 Tomcat 的 JVM 进程启动 JMX 控制台,然后在 System 选项卡下查看。您可以看到所有值并复制 System properties.

下的值

如果您要从远程计算机执行此操作,您可能需要检查 the documentation on enabling remote JMX

除了Java Mission Control,您还可以使用icmd 来完成。首先列出 Java 个进程:

$JAVA_HOME/bin/jcmd

然后输入Tomcat进程的PID:

$JAVA_HOME/bin/jcmd <pid> VM.system_properties