0. Runtime.exec()用来执行外部程序或命令
1. Runtime.exec() 有四种调用方法
* public Process exec(String command);
* public Process exec(String [] cmdArray);
* public Process exec(String command, String [] envp);
* public Process exec(String [] cmdArray, String [] envp);
2. 得到程序执行返回值, 0为success
需要用waitFor()函数,比如
Process p = Runtime.getRuntime().exec("javac");
(处理.....)
int exitVal = p.waitFor();
3. 得到程序执行的结果或错误信息
需要用BufferedInputStream 和 BufferReader来得到,否则程序会hang
比如得到错误信息用p.getErrorStream(),然后输出即可:
BufferedInputStream in = new BufferedInputStream(p.getErrorStream());
BufferedReader br = new BufferedReader(new InputStreamReader(in));
4. Runtime.exec() 不等同于直接执行command line命令!
啊,我算是在这里吃了苦头了。Runtime.exec()很有局限性,对有些命令不能直接把command line里的内容当作String参数传给exec().
比如重定向等命令。举个例子:
javap -l xxx > output.txt
这时要用到exec的第二种重载,即input 参数为String[]:
Process p = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c","javap -l xxx > output.txt"});
转自:http://blog.csdn.net/flying881114/article/details/6272472
分享到:
相关推荐
通过以上知识点,我们可以理解如何在Java中使用`Runtime`类来执行bat脚本,以及执行过程中需要注意的事项。在实际开发中,根据项目需求,可以选择使用`Runtime`或`ProcessBuilder`,并且始终要关注安全性。
注意事项 - 在实际应用中,应确保执行的命令是安全可靠的,防止恶意命令被执行。 - 考虑到跨平台性,某些命令可能仅在特定的操作系统下有效。 - 处理命令执行的结果时,可以通过读取`Process`对象的输入流和错误流...
#### 五、注意事项 1. **安全性和权限问题**:直接执行外部命令可能会带来安全隐患,特别是当命令来自不可信源时。确保只执行信任的命令。 2. **异常处理**:在调用`Runtime.exec()`时,应妥善处理可能出现的`...
#### 三、注意事项 - 使用`Runtime.exec()`时,应确保有足够的权限来执行相应的命令。 - 需要注意安全问题,特别是当命令包含用户提供的数据时,避免注入攻击。 - 在处理大型或长时间运行的进程时,应考虑资源管理...
以下是如何使用Java调用Windows命令行的详细步骤和注意事项: 1. **调用外部程序** - 使用`Runtime.getRuntime().exec()`方法创建一个子进程来执行指定的可执行程序。例如: ```java Process process = Runtime....
#### 四、注意事项 - 在使用`Runtime.getRuntime().exec()`方法执行外部命令时,需要确保目标操作系统支持相应的命令。 - 使用`Runtime.getRuntime().exec()`可能会导致安全问题,尤其是在处理用户输入的情况下,...
### Java通过进程名称杀进程 在日常开发与运维过程中,我们常常需要对系统中的特定进程进行管理和控制。本文将详细介绍如何使用Java代码...此外,还介绍了一些进阶技巧和注意事项,帮助读者更好地理解和掌握相关知识。
#### 重要注意事项 - 在执行敏感命令时,需要注意权限问题,确保有足够的权限执行这些命令。 - 跨平台兼容性:由于不同的操作系统可能有不同的命令,因此在开发跨平台的应用时需要特别注意命令的兼容性。 - 安全性:...
### 注意事项 虽然`Runtime.exec()`提供了一种非常方便的方式来执行Linux命令,但是在实际应用中还需要注意以下几点: - **安全性**:直接执行外部命令可能会引入安全风险,特别是当命令字符串包含来自不可信源的...
### Java-编写跨平台Java程序注意事项 在Java编程领域中,跨平台性是其核心优势之一,这得益于Java“一次编写,到处运行”的设计理念。然而,在实际开发过程中,要实现真正的跨平台应用并非易事,需要注意诸多细节...
6. **安全注意事项** 使用这些方法时要谨慎,因为它们具有很高的权限。无控制地结束进程可能会导致数据丢失或系统不稳定。在生产环境中,确保你的代码有充分的错误处理和权限控制。 总结来说,Java通过`Runtime`和...
#### 五、注意事项 - **命令格式**:在使用`exec()`方法时,需要注意命令的格式。例如,使用`cmd /c`格式可以更好地处理命令执行后的窗口关闭问题。 - **路径问题**:当指定文件路径时,应确保路径正确无误,避免因...
4. **注意事项**: - 执行的命令必须是安全的,避免命令注入攻击。 - 错误处理很重要,如命令执行失败或无法读取输出时,应有适当的异常处理。 - 运行环境可能影响命令执行,如Windows与Unix系统下的命令语法差异...
使用 Java 调用应用程序的注意事项 使用 Java 调用应用程序时,需要注意以下几点: 1. 安全性 使用 Java 调用应用程序时,需要注意安全性问题,例如,需要确保调用应用程序的权限、数据交换的安全性等。 2. 兼容...
#### 六、注意事项 1. **路径问题**:在Windows下,绝对路径中的盘符前需要加一个反斜杠(例如`C:\`)。 2. **命令格式**:对于Windows平台,需要使用`cmd.exe /c`来执行DOS命令。 3. **权限问题**:某些命令可能...
以下是一些关键的注意事项和技巧,有助于确保你的Java程序能在各种操作系统上顺利运行。 1. 使用标准Java核心API:为了实现跨平台兼容性,应避免使用特定于平台的库或工具,例如JDK 1.0到1.2版本以及像JBuilder、...
四、注意事项 1. 使用`Runtime.exec()`时,记得处理异常,捕获如`IOException`和`InterruptedException`。 2. 执行命令后,确保关闭打开的流,防止内存泄漏。 3. 考虑到安全性和稳定性,不要在生产环境中随意使用...
#### 三、注意事项 在实际应用中需要注意以下几点: 1. **路径问题**: - 如果执行的命令位于特定路径下,需要提供完整的路径,例如`C:\\Windows\\system32\\tasklist.exe`。 - 当执行批处理文件(如`.bat`文件...