我有一个在几个平台(特别是Windows,Solaris & AIX)上运行的Java“代理程序”。我想通过在我执行的命令行中使用环境变量来分析文件系统结构中的差异。Java Runtime.exec运行的命令中的环境变量评估()
据我所知,没有办法让Runtime.exec()
方法来解析/评估命令String(或String数组)中引用的任何环境变量。
我知道,如果推动推动我可以写一些代码来预处理命令字符串和手动解决环境变量(使用getEnv()
等)。不过,我想知道是否有更聪明的方法来做到这一点,因为我确信我不是唯一想做这件事的人,我确信在“敲”我自己的实施方面存在缺陷。
我们非常欢迎您的指导和建议。
编辑: 我想使用一些一致的符号(如$ VAR和/或%VAR%)在命令字符串中引用环境变量。没有融化哪个。
编辑: 要清楚,我想能够执行一个命令,例如:
perl $SCRIPT_ROOT/somePerlScript.pl args
在Windows和UNIX主机使用Runtime.exec()
。我在配置文件中指定了描述要运行的作业列表的命令,并且它必须能够跨平台工作,因此我认为环境变量将有助于分析文件系统差异(/home/username/scripts
vs C:\foo\scripts
)。希望有助于澄清它。
谢谢。 Tom
你是如何解决这些问题的?在传递给'Runtime.exec()'的命令字符串中使用'$ VAR'的Unix shell方法? – 2010-01-19 02:40:53
@凯文 - 是的。理想的情况下。 – 2010-01-19 02:51:34