如何通过从java中提供变量来在bash脚本中执行git命令?

时间:2017-09-19 06:28:53

标签: java git bash shell

我想运行" 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

这样做的正确方法是什么?

1 个答案:

答案 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。