I need a Linux command to get current value of java.io.tmpdir Also can you tell me the command to get all the system propeties.
4 回答
JDK 提供了可以用来实现目标的工具。使用指定的命令,可以显示系统变量的值java.io.tmpdir
。
jinfo <process id> | grep "java.io.tmpdir"
这<process id>
是要显示系统变量值的 java 进程的编号。您可以使用该jps
工具获取的 java 进程的 ID,其中列出了您机器上运行的所有 java 进程。
要查看java进程的所有系统变量,请使用此命令
jinfo <process id>
所有 JDK 工具都位于$JAVA_HOME/bin
目录中。
java.io.tmpdir
是java系统属性之一,所以它的值只存在于jvm内部。要找出java.io.tmpdir
属性的值是什么,您还可以用 java 编写一个简单的程序。它可能看起来像这段代码:
public class JSystemProperties {
public static void main(String[] args) {
System.getProperties().list(System.out);
}
}
上面的代码将打印所有 java 系统属性,但您可以修改它以仅打印一个名称为您通过args
数组传递的系统属性(使用System.getProperty(key)
方法)。编译此类后,您可以创建脚本(将运行已编译的 java 类),该脚本可被视为 Linux 命令以获取 java 系统属性的当前值。
对于我过去部署的黑盒 Java 应用程序,有时我可以java.io.tmpdir
通过执行以下命令找到 的值:
ps -ef | grep java.io.tmpdir
特别是对于 tomcat 应用程序,您可能会得到如下输出:
-Djava.io.tmpdir=/usr/local/tomcat/temp
对于临时目录:这里有一个很好的答案。
对于所有环境变量,请尝试env
命令。
现在推荐的工具是 jcmd,像这样使用它:
jcmd $pid VM.system_properties | grep java.io.tmpdir