2012-01-05 188 views
1

我正在尝试从特定java进程的命令行读取系统属性“user.dir”。我已经看到了几个从Java代码(System.getProperty)获取系统属性的例子,但是我需要为另一个java进程设置系统属性。从命令行获取java进程的“user.dir”系统属性

我怎样才能获得相同的?

+0

您可以通过命令行参数设置系统属性:'-Duser.dir = foo'。你是这个意思吗? – home 2012-01-05 07:09:32

+0

要知道的唯一方法是让另一个进程告诉你......或以其他方式捅一下并尝试看看它是如何设置的......也许用一个附加的调试器...... – 2012-01-05 07:24:48

+0

'java进程' - 它是从代码中作为['Process']启动(http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html)? – 2012-01-05 07:25:55

回答

1

获取系统属性,你可以使用System.getProperty()

System.out.println("User Home Path: "+System.getProperty("user.dir")); 

设置系统属性,你可以使用System.setProperty()

System.setProperty("user.dir", "E:\\Eclipse Indigo workspace"); 
+0

您不应该将user.dir设置为不同的值,因为在整个Java中有些地方希望它与实际的工作目录! – David 2013-09-20 10:14:11

0

见下面链接下面摘录:

http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

setProperties方法更改当前正在运行的应用程序的系统属性集。这些更改不是持久的。也就是说,更改应用程序中的系统属性不会影响未来对此解释器或任何其他应用程序的调用。运行系统每次启动时都会重新初始化系统属性。 如果对系统属性的更改要持久,则应用程序必须在退出之前将值写入某个文件,并在启动时再次读取它们。

+0

感谢提示答案,Sunil和Garry ..也许我的问题有点不清楚..我想知道由第三方java进程设置的系统属性,如tomcat。如果我能得到第三方java进程的进程标识,有什么办法从命令行/一个不同的java应用程序获取它的系统属性? 再次感谢! – user1131528 2012-01-05 08:26:35