获取 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
我用谷歌搜索了所有我能想到的东西,但找不到任何东西。
有谁知道如何让 tomcat 转储当前运行时环境的 System.getProperties() 的输出?有时会有用。
根据我的回答
<%@ 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