static int exec(List<String> l) {
l.add(0, isWin() ? "cmd.exe" : "sh")
l.add(1, isWin() ? "/c" : "-c") // Adds a platform specific prefix
ProcessBuilder pb = new ProcessBuilder(l)
fine("Executing command: '" + l.join(" ") + "'") // Logging
pb.inheritIO()
Process p = pb.start()
int i = p.waitFor() // Returns an integer
println(i) // The problematic line
return i
}
原因
groovy.lang.MissingMethodException: No signature of method: soc.util.Build$__clinit__closure1.doCall() is applicable for argument types: ([B, java.lang.Integer, java.lang.Integer) values: [[48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...], ...]
但是如果我删除了println语句就行了。
用System.out.println(i)
或println(i as int)
或println((int) i)
替换它。
将i
设置为常量值也不起作用。
这是一个已知的错误,你可以绕过这个吗?