我有一段使用环境变量的Java代码,代码的行为取决于此变量的值.我想用环境变量的不同值测试此代码.我怎么能在JUnit中这样做?
是否可以在运行时从Java应用程序设置环境变量?在Java 1.5 java.lang.System类中有getenv()方法,我只需要一个setenv()方法......
是否可以在java进程本身中修改环境变量; 不在孩子的过程中.
是否有可能通过JNI实现它?那会怎么样?
谢谢.
编辑:好的,让我这样说吧 - 我们可以用Java做以下几点.请回答.
Hemal Pandya回答说:"您可以修改当前和子进程的环境,但不能修改产生此进程的父进程的环境." 你同意吗?
我不清楚这一点.当我在applet查看器中运行java App或运行Applet时(在IDE环境中), System.getProperty("java.class.path")给我与System.getenv("CLASSPATH")我的env变量中定义的CLASSPATH 相同.
但是当我将我的applet部署到web服务器并从与客户端相同的计算机访问它时,我得到了两个不同的结果.(System.getProperty("java.class.path")仅指向JRE home并System.getenv("CLASSPATH")返回null).
还有一些令我惊讶的事情:
对于applet部分,env var JAVA_HOME,在浏览器和Applet Viewer中部署applet时得到的结果相同.
如果我在系统级别定义一个env变量,并使用getenv("envName")结果是null.无论如何我可以定义一个并在我的Java程序中获取它吗?
java system classpath environment-variables system-properties