18

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

4 回答 4

32

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

于 2014-03-07T10:20:06.943 回答
14

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

ps -ef | grep java.io.tmpdir

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

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

于 2015-10-19T21:28:11.877 回答
2

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

对于所有环境变量,请尝试env命令。

于 2012-04-10T17:21:37.337 回答
1

现在推荐的工具是 jcmd,像这样使用它:

jcmd $pid VM.system_properties | grep java.io.tmpdir
于 2019-02-15T06:28:32.223 回答