我试图添加版本控制到我的web服务器(在Windows上,我知道...),我需要使用批处理脚本来做自动添加和提交。以下是我现在有:将参数传递给批处理从java工作,但没有结果
public static void bzr_add(String path, String commit) throws IOException {
ProcessBuilder pb = new ProcessBuilder(scripts + "bzr_add.bat", storage, path, "\"" + commit + "\"");
Process p = pb.start();
String line;
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = r.readLine()) != null) {
System.out.println(line);
}
r.close();
try {
p.waitFor();
} catch (InterruptedException ex) {
Logger.getLogger(local.class.getName()).log(Level.SEVERE, null, ex);
}
}
随着“脚本”是的目录在脚本中可以发现,“存储”的存储目录和“路径”的新文件的路径。
批处理脚本:
cd %1
bzr add %2
bzr commit -m %3
而我得到:
Infos: C:\Program Files\glassfish-3.1.2\glassfish\domains\domain1>cd c:\storage_dir\
Infos: C:\storage_dir>bzr add dir\file.ext
Infos: C:\storage_dir>bzr commit -m "commit_message"
所以它似乎确定,当我复制这在cmd壳它的工作原理(它也可以当我做shell中的bzr_add.bat par1 par2 par3)。如果我修改脚本以创建新文件,则会在正确的目录中创建它们,以便正确执行某些操作。
但是,当我通过java执行脚本时,集市似乎并不认同,有什么猜测?
你能解释一下你的实际问题吗? “但是集市似乎不同意这个”是什么意思? – bialix 2012-07-11 13:29:19
你是否看到任何错误?也许还请检查日志文件 /.bzr.log –
AmanicA
2012-07-11 13:34:18