java - 如何使用java程序设置系统变量
问题描述
我想在 JAVA 中设置环境变量。为此,我在互联网上搜索了很多并得到以下代码
ProcessBuilder pb = new ProcessBuilder();
Map<String, String> env = pb.environment();
env.put("DS_HOME", "C:\\MyFile\\jboss-eap-6.4\\modules\\com\\mycom\\library\\d_home");
env.put("CS_HOME", "C:\\MyFile\\jboss-eap-6.4\\modules\\com\\mycom\\library\\c_home");
pb.command("cmd.exe", "/c", "echo", "%DS_HOME%");
pb.command("cmd.exe", "/c", "echo", "%CS_HOME%");
try {
pb.inheritIO().start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Map<String, String> getenv = System.getenv();
Set<Entry<String,String>> entrySet = getenv.entrySet();
for (Entry<String, String> entry : entrySet) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
执行此代码后,我没有获得使用 ProcessBuilder 设置的自定义变量。请帮我解决这个问题。我想执行一个需要一些环境变量的服务,并且我正在尝试使用 java 代码设置系统变量。
解决方案
如果要更改当前Java
进程的系统变量,则必须通过JNI
通过 JNI https://github.com/mkowsiak/jnicookbook/tree/master/recipes/recipeNo043在 JVM 中设置环境变量
推荐阅读
- c# - 如何从单页应用程序实现 OAuth 2.0 授权码授予?
- sql - 如何用 N/A 替换 0
- julia - 使用 joinpath() 将特定字符串插入更长的字符串 - 类似 R paste()
- android - 为什么 gradle 3.2.1 在 aar 文件中生成不必要/重复的空文件夹?
- python - 使用 .to_json 将数据帧转换为 JSON 会弄乱日期时间数据
- c - 如何找到具有特定值的行或列的总和?
- python - 为什么这个正则表达式在我的 Python 中不起作用?
- java - 如何更改我的 log4j2.xml RollingFile 设置
- node.js - 如何从角度向 node.js 发出 http.get() 请求?
- python - Flask - 不在浏览器上加载新页面