Mat*_*all 24 java jvm environment-variables platform-independence
我正在开发一个在Windows Vista机器上运行JBoss的J2EE应用程序,但该应用程序最终会在Linux机器上运行.有没有办法以平台无关的方式传递环境变量的值?
我认为(但我不确定)平台敏感的方式是:
-Denv_var=%MY_ENV_VAR% (Windows)
-Denv_var=$MY_ENV_VAR (Linux)
Run Code Online (Sandbox Code Playgroud)
从那里我将使用访问值(在Java中)
System.getProperty("MY_ENV_VAR");
Run Code Online (Sandbox Code Playgroud)
- 那是对的吗?
Javadoc System.getenv(String name)似乎意味着该方法依赖于平台,但我不清楚这一点.我是否可以完全跳过将变量完全传递到JVM中,并getenv()在使用操作系统设置环境变量的值后使用?
Chs*_*y76 24
System.getenv()本身与平台无关.使用上面的例子,你肯定可以写
String value = System.getenv("MY_ENV_VAR")
Run Code Online (Sandbox Code Playgroud)
它可以在Linux和Windows上运行.没有理由将其包装到java系统属性中.也就是说,"平台相关"部分getenv()在于不同的操作系统使用不同的环境变量,例如Windows上的PATH和Linux上的路径.但只要你使用自己的变量并一致地命名它们(例如总是大写),你就没事了.