我想使用ProcessBuilder执行4个命令,但第2个命令无法正常工作。
我的代码:
public static void main(String[] args) {
String path_prj = "C:\\Users\\asali\\Desktop\\CallRepoCode";
String origBranch = "frontend";
ArrayList<String> paths = new ArrayList<>();
paths.add("server\\src\\main\\java\\org\\classes\\CallManager.java");
paths.add("server\\src\\main\\java\\org\\classes\\CallUtils.java");
paths.add("server\\src\\main\\java\\org\\classes\\Main.java");
String command_1 = "cd " + path_prj;
String command_2 = " & git checkout " + origBranch;
String command_3 = " & mkdir updated_cia_files ";
String command_4 = " ";
for (String path: paths) {
command_4 = command_4 + "& copy " + path + " updated_cia_files ";
}
String[] command = {"cmd.exe", "/C", command_1, command_2, command_3, command_4 };
ProcessBuilder processBuilder = new ProcessBuilder(command);
processBuilder.start();
}
基本上,我想去C:\\Users\\asali\\Desktop\\CallRepoCode
并 checkout 到frontend
分支。有一个GitHub repo,所以它应该工作。 checkout 后,我想创建一个文件夹,并复制3个文件到该文件夹。
我成功地创建了文件夹并复制了文件;然而,本地回购不向前端分支结帐。
编辑
1.当我在cmd上手动运行命令时,它可以正常工作。
1.当我删除代码中的command_3和command_4时,它会执行git checkout命令。
1条答案
按热度按时间4nkexdtk1#
也许我可以建议你一个其他的解决方案,你可以直接使用jgit和java直接从java做这些任务
例如(未检测)