从 Java 调用 Apache Cordova CLI
Call Apache Cordova CLI from Java
我希望 Apache Cordova CLI 被 Java 进程调用,但不幸的是 Java 进程不会等到它完成。
我是这样称呼它的:
StringBuffer sb = null;
String cmd = "cd /location/generated && cordova create MyNewApp"
try {
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));
sb = new StringBuffer();
String line = "";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
我见过很多解决方案,据说 "waitFor()" 可以解决问题,但不幸的是不适合我。我已经尝试始终阅读和比较 cordova cmd 生成的最后一行代码并在之后完成,但这不是一个好方法。你有什么建议吗?
已解决:
Cmd 看起来像这样 "cordova create /path/to/generated/app/ Hello World"
请注意,在调用 cmd 之前路径必须存在
我希望 Apache Cordova CLI 被 Java 进程调用,但不幸的是 Java 进程不会等到它完成。
我是这样称呼它的:
StringBuffer sb = null;
String cmd = "cd /location/generated && cordova create MyNewApp"
try {
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));
sb = new StringBuffer();
String line = "";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
我见过很多解决方案,据说 "waitFor()" 可以解决问题,但不幸的是不适合我。我已经尝试始终阅读和比较 cordova cmd 生成的最后一行代码并在之后完成,但这不是一个好方法。你有什么建议吗?
已解决: Cmd 看起来像这样 "cordova create /path/to/generated/app/ Hello World"
请注意,在调用 cmd 之前路径必须存在