【发布时间】:2012-08-12 07:48:57
【问题描述】:
我正在使用 Java 来显示来自 Git 存储库的一些信息。我正在使用“Runtime.getRuntime().exec”来执行命令。
所以当我写的时候
Process process = Runtime.getRuntime().exec("git --git-dir=/home/gh/git/.git --work-tree=/home/gh/git log");
效果很好
但是,我需要获取特定人的日志信息,所以当我编写以下语句时,它没有显示任何结果
String activeDeveloper = "Carlos Rica";
Process process = Runtime.getRuntime().exec("git --git-dir=/home/ghadeer/git/.git --work-tree=/home/ghadeer/git log --author=" + activeDeveloper);
有谁知道这是怎么回事?
【问题讨论】:
-
暂时不考虑Java,您将如何输入该命令来在命令行搜索特定的人?在尝试将其放入 Java 之前,请确保您可以在那里获得正确的结果。
-
这是在终端输入命令的方式。 “git --git-dir=/home/ghadeer/git/.git --work-tree=/home/ghadeer/git log --author="Carlos Rica")。而且,它也很完美。但是, Java 中没有!!!
-
您的开发者名称中有空格。如果这被传递给
exec将被视为两个参数,并且如果您没有名为 Carlos 的开发人员(没有姓氏),git log无法返回结果。您必须正确引用名称才能做到这一点。 -
String activeDeveloper = "\"Carlos Rica\""; -
Jochen,你是对的;由于空间的原因,它不起作用。但是,即使名称有空格,我能做些什么让它工作?!!!