首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java运行setx命令

使用java运行setx命令
EN

Stack Overflow用户
提问于 2014-08-08 11:17:27
回答 1查看 2.6K关注 0票数 3

我正在编写一个java代码,它将使用java将路径字符串附加到% path %变量

在命令提示符中,命令是

代码语言:javascript
复制
setx PATH "%PATH%;C:\my Path\"

在java中,下面是我的代码:

代码语言:javascript
复制
import java.io.File;
import java.io.IOException;

public class AddToPATHVariable {
    public static void main(String[] args) throws InterruptedException, IOException {
        String folderPath = "C:\\my Path\\";
        System.out.println(folderPath);
        Runtime rt = Runtime.getRuntime() ;
        Process p = rt.exec("setx PATH \"%PATH%;" + folderPath + "\"");
        p.waitFor();
        p.destroy();
    }

}

问题是我的命令行提示符被完美地追加了新字符串。但是java代码将路径变量的值设为% path %;C:\my Path\

请有人在这方面给我指点。

EN

回答 1

Stack Overflow用户

发布于 2014-08-08 16:06:36

好吧,由于没有人负责转换%PATH%,所以它根本不被转换!

更严重的是,实际上是cmd.exe解释器完成了环境变量的转换,而您不使用它。要让它发挥作用,你必须:

  1. 将环境变量PATH转换为java代码中的值 字符串路径=System.getenv(“路径”);
  2. 在命令中使用转换后的字符串 进程p= rt.exec("setx \"“+ PATH + ";”+ folderPath + "\"");

编辑:

要真正确定发生了什么,可以在执行之前显示生成的命令:

代码语言:javascript
复制
String cmd = "setx PATH \"" + path + ";" + folderPath + "\"";
Process p = rt.exec(cmd);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25202275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档