2012-03-20 89 views
0

如果我有一个需要设置特定环境变量的Java应用程序,但我不能将它们放在bash.rc或bash_profile中,也不能将它们放在/ etc/profile.d是否可以在Java进程中设置它们?或者这些需要在java进程运行之前设置?每次手动设置它们都不是一种选择,因为我希望它们对用户是透明的。在Linux上从Java进程中设置Shell环境变量

+0

请澄清:您想要设置环境变量为程序内的硬编码值,然后读取这些环境变量? – 2012-03-20 18:01:15

+1

可能的重复[如何从Java设置环境变量?](http://stackoverflow.com/questions/318239/how-do-i-set-environment-variables-from-java) – 2012-03-20 18:09:22

回答

4

从shell脚本启动java进程。脚本将首先定义并导出环境变量。

-1

你试试吗?

System.setProperty("KEY", "VALUE"); 
+0

这是一个Java系统属性。这不是一个环境变量。 – 2012-03-20 18:03:28

+0

我的不好,我不够小心。 – 2012-03-20 18:07:40

0

我怀疑这是不可能的。 System.getenv()是一个不可修改的映射,意味着你不能修改它中的元素。

+0

他可以使用ProcessBuilder来设置env变量 - 请参阅我在帖子中放置的链接以及“可能的重复”评论 – 2012-03-20 18:18:44