有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我想使用Java运行“git checkout”命令。我正在使用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) 个答案

  1. # 1 楼答案

    您的Java代码看起来不错。我在我的网站上做了一个测试,通过“你好”和“世界”来测试。bat,并将其打印到文件测试中。是的,它能工作

    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");
    
    }
    

    测试代码。bat如下:

    @echo off
    echo %0 > C:\test.txt
    echo %1 >> C:\test.txt
    echo %2 >> C:\test.txt
    @echo on
    

    还有考试。txt将类似于low:

    test.bat 
    hello 
    world 
    

    因此,我建议您可以打印bat文件中的参数,并检查bat文件接收到的内容,还可以检查是否可以直接在CMD中使用这些参数运行bat文件。 仅供参考