我有一个正在运行的 WebSphere Application Server 7 实例,我需要知道 Java 系统属性的当前值。
有什么方法可以获取这些信息吗?
(我想知道侵入性最小的方式,所以不考虑添加打印属性的 JSP)
我有一个正在运行的 WebSphere Application Server 7 实例,我需要知道 Java 系统属性的当前值。
有什么方法可以获取这些信息吗?
(我想知道侵入性最小的方式,所以不考虑添加打印属性的 JSP)
触发线程转储(javacore)。这将需要几秒钟,并且几乎不会被注意到。线程转储将在其信息部分列出 JVM 的所有环境属性。搜索标志 1CIENVVARS、2CIENVVAR,如下面的片段所示。
...
1CIENVVARS Environment Variables
NULL ------------------------------------------------------------------------
2CIENVVAR _=/WebSphere/AppServer/java/bin/java
2CIENVVAR LANG=en_US
2CIENVVAR CONFIG_ROOT=/WebSphere/AppServer/profiles/Srv02/config
2CIENVVAR LOGIN=wasadmin
2CIENVVAR SSH_TTY=/dev/pts/1
2CIENVVAR CLCMD_PASSTHRU=1
2CIENVVAR PATH=/WebSphere/AppServer/java/ibm_bin:/WebSphere/AppServer/java/bin/:/WebSphere/AppServer/java/jre/bin:/WebSphere/AppS
...
我可以通过wsadmin
脚本按名称获取特定属性,但似乎没有等效的方法来列出“所有”属性。
这可能对您没有帮助,但如果将来有人有类似的需求,这里有几个 Jython 命令来检索标准系统属性之一。
jvm = AdminControl.completeObjectName('WebSphere:type=JVM,process=YourServerName,*')
AdminControl.invoke(jvm,'getProperty','user.timezone')
如果没有更好的选择,将 JSP 直接部署到文件系统或通过控制台的单文件部署应该不会太麻烦。特别是考虑到您不必实际更改构建的 WAR 文件即可在其之上部署独立的 JSP。