In Java API, there is the method System.getenv(), but no interface to set the env. This is because Java forbid the operation based on platform. But sometimes we need to change the env to finish some unit test. The following way just like a hack but it is ok to unit test:
private void setNewEnvironmentHack(Map<String, String> newenv) throws Exception
{
Class<?> processEnvironmentClass = Class.forName("java.lang.ProcessEnvironment");
Field theEnvironmentField = processEnvironmentClass.getDeclaredField("theEnvironment");
theEnvironmentField.setAccessible(true);
Map<String, String> env = (Map<String, String>) theEnvironmentField.get(null);
env.clear();
env.putAll(newenv);
Field theCaseInsensitiveEnvironmentField = processEnvironmentClass.getDeclaredField("theCaseInsensitiveEnvironment");
theCaseInsensitiveEnvironmentField.setAccessible(true);
Map<String, String> cienv = (Map<String, String>) theCaseInsensitiveEnvironmentField.get(null);
cienv.clear();
cienv.putAll(newenv);
}
The following implemented code comes from the stackoverflow, record it here in case we may need it again.
分享到:
相关推荐
javaEnv自动设置环境
用于Java和Kotlin的Ruby Dotenv项目的端口。从.env文件加载环境变量。
allegro快捷键 常用快捷键设置: ...# like the Function keys when the cursor is in the Allegro canvas. # # Example -- following starts the move command without a Enter key # funckey m move
cadence 16.3 安装后出现can not find allegro env file.doc cadence 16.3 安装后出现can not find allegro env file.doc
advanced programming in unix env 中文
软件官网:https://www.phpenv.cn 为什么开发这款集成环境 2017年phpstudy被 php.cn 收购,软件用c++重写了,现在逐渐商业化,用户体验和2016版不能比,决定自己开发一款php集成环境,于是用C# WPF 开发了phpEnv。...
cadence快捷键设置env文件
ENV常用快捷键,覆盖X:\Cadence17.4\Cadence\SPB_Data\pcbenv中ENV文件即可, W/w拉线,A/a更改,S/s修线,D/d删除,C/c复制,T/t修改文本,R/r旋转器件,H/h高亮,等等有好几个,如果要修改,用文本打开自己修改...
env : 系统环境变量 System.getProperties() : 直接引用,没有前缀 generator.properties 文件中的所有属性,直接引用,没有前缀 gg : 模板控制变量, cn.org.rapid_framework.generator.GeneratorControl
allegro快捷键文件env
Java示例指导Travis设定将以下内容添加到您的.travis.yml : language : javaafter_success : - bash <(curl -s https://codecov.io/bash)产生承保范围报告将JaCoCo插件添加到您的pom.xml文件,注意事项私人回购...
PCB入门首选视频-小哥Cadence Allegro 2层板视频中的env快捷键文件。
kmod 查看工作,比较好用,kmod mtk env
Anything that is likely to change between deployment environments–such as resource handles for databases or credentials for external services–should be extracted from the code into environment ...
cross-env-7.0.3.zip
:old_key: dotenv-java Ruby dotenv项目的无依赖性纯Java端口。 从.env文件加载环境变量。 dotenv-java还为流行的库提供了支持。 为什么要选择tentenv? 在环境中存储配置是应用程序的宗旨之一。 应该在部署环境之间...
可以去掉Qt的依赖jint create_vm(JavaVM** jvm, JNIEnv** env) { JavaVMInitArgs args; JavaVMOption options[1]; args.version = JNI_VERSION_1_6; args.nOptions = 1; options[0].optionString = "-Djava....
Env169-Ydjb.apk
威盛 8650 ENV文件
DataSource dataSource = (DataSource) ctx.lookup("java:comp/env/" + jndiName); return dataSource.getConnection(); } catch (NamingException ex) { ex.printStackTrace(); } catch ...