我想运行" git checkout"使用Java的命令。我使用bash脚本这样做,我无法将参数传递给脚本?有人可以提出解决方案吗?
我的代码:
public static void main(String[] args) throws IOException, Exception {
String path="path/to/repo";
String branch="newBranch";
ProcessBuilder pb = new ProcessBuilder("C:/revert.bat",path,branch);
Process p = pb.start();
p.waitFor();
System.out.println("Script executed successfully");
}
Bash脚本是:
cd $1
git checkout $2
这样做的正确方法是什么?
答案 0 :(得分:0)
您的Java代码似乎很好。我在我的网站上做了一个测试,通过"你好"和#34;世界" test.bat,并将它们打印到文件test.txt,它的工作原理。
public static void main(String[] args)
{
ProcessBuilder pb = new ProcessBuilder("C:/test.bat","hello","world");
Process p;
try {
p = pb.start();
p.waitFor();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Script executed successfully");
}
test.bat代码如下:
@echo off
echo %0 > C:\test.txt
echo %1 >> C:\test.txt
echo %2 >> C:\test.txt
@echo on
test.txt就像是低:
test.bat
hello
world
所以我建议您可以在bat文件中打印参数并检查bat文件收到的内容,并检查是否可以直接在CMD中运行带有这些参数的bat文件。 FYI。