我有一个命令行工具,我想从java应用程序启动。然后我的应用程序应该等待命令行工具返回/完成。 我将在Windows,Mac和Linux上部署我的应用程序,我的应用程序应该能够在每个平台上调用命令行工具。 如何正确地从我的Java应用程序调用它?由java applciation调用命令行工具
3
A
回答
1
使用java.lang.Process中为:
final Process process = Runtime.getRuntime().exec("yourprogram", null, outputDir);
final int exitCode = process.waitFor();
if (exitCode != 0) {
throw new RuntimeException("program didnt exit with 0, but with " + exitCode);
}
6
http://download.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Process.html
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Process p = pb.start();
p.waitFor();
+1
我还建议阅读并实施[Runtime.exec()不会]的所有建议](http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html) 。链接的文章在处理'Process'时覆盖了常见的陷阱。 – 2011-03-29 09:28:04
0
可以使用Runtime
类来启动命令行程序。您应该能够在Win/Mac/Linux中使用,方法是确保您运行的命令行程序始终位于PATH中。
Runtime rt = Runtime.getRuntime();
Process proc;
proc = rt.exec(cmdName);
// Wait for the command to complete.
exitVal = proc.waitFor();
相关问题
- 1. 使用Ruby调用命令行工具
- 2. 运行命令行工具Java程序
- 3. 从java执行命令行工具因命令行而异?
- 4. Swift:命令行工具退出回调
- 5. Axis2:wsdl2java工具命令行
- 6. 命令行转录工具
- 7. 命令行STL卷工具
- 8. Java jdb远程调试命令行工具
- 9. 如何命中由另一个工具调用的命令行工具中的断点?
- 10. IE7 javascript命令行工具
- 11. Deflate命令行工具
- 12. AWS命令行工具破:(
- 13. ios SDK命令行工具
- 14. Nessus命令行工具
- 15. 从Gradle脚本调用命令行工具
- 16. 禁用命令行工具的终端
- 17. 命令行Java调试器
- 18. 使用XCode 5的命令行工具
- 19. 命令行工具不可用
- 20. 使用mysql命令行工具
- 21. 命令行工具/使用状态
- 22. 分裂用命令行工具
- 23. 使用vim作为命令行工具?
- 24. 如何使用curl命令行工具
- 25. ocr使用命令行工具
- 26. 调用java命令行应用程序
- 27. Flyway Java迁移不能在命令行工具中工作
- 28. 比较工具与命令行的mac
- 29. 从命令行调用快照(FastLane工具>快照)
- 30. 在Python和Ubuntu中调用命令行工具
它是一个单一的“命令行工具”,可用于所有操作系统或每个不同的工具? – 2011-03-29 09:25:57