Linux 命令获取 java.io.tmpdir 的当前值

问题描述 投票:0回答:5

我需要一个 Linux 命令来获取 java.io.tmpdir 的当前值 另外你能告诉我获取所有系统属性的命令吗?

unix properties command system
5个回答
33
投票

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 系统属性的当前值。


14
投票

对于我过去部署的黑盒Java应用程序,我有时可以通过执行以下命令找到

java.io.tmpdir
的值:

ps -ef | grep java.io.tmpdir

特别是对于 Tomcat 应用程序,您可能会得到如下输出:

-Djava.io.tmpdir=/usr/local/tomcat/temp


2
投票

对于临时目录:有一个很好的答案这里

对于所有环境变量,请尝试

env
命令。


1
投票

现在推荐工具是jcmd,使用它就像:

jcmd $pid VM.system_properties | grep java.io.tmpdir

0
投票

运行:

java -XshowSettings

并查找“java.io.tmpdir ="

”的值
Property settings:
file.encoding = UTF-8
file.separator = /
java.class.path = 
java.class.version = 61.0
java.home = /usr/lib/jvm/zulu17-ca
java.io.tmpdir = /tmp  # <---- HERE
© www.soinside.com 2019 - 2024. All rights reserved.