【发布时间】:2014-06-22 14:02:37
【问题描述】:
如何在 Ubuntu 中使用 java 代码通过终端选择目录并触发命令。 例如,我想选择像“cd /home/sree/tomcat/bin”这样的tomcat目录并触发像“sh shutdown.sh”和“sh startup.sh”这样的命令来使用java编码访问sh文件。 在windows操作系统中也需要上述过程的帮助。 请任何人给我一个解决方案。提前致谢
【问题讨论】:
如何在 Ubuntu 中使用 java 代码通过终端选择目录并触发命令。 例如,我想选择像“cd /home/sree/tomcat/bin”这样的tomcat目录并触发像“sh shutdown.sh”和“sh startup.sh”这样的命令来使用java编码访问sh文件。 在windows操作系统中也需要上述过程的帮助。 请任何人给我一个解决方案。提前致谢
【问题讨论】:
使用以下函数:
java.lang.Runtime.getRuntime().exec("a-command");
另外,这篇文章可能会对您有所帮助: http://blog.art-of-coding.eu/executing-operating-system-commands-from-java/
【讨论】:
您可以使用Apache Commons CLI 创建一个调用所需命令的程序(您需要为 Ubuntu 和 Windows 创建一个版本)。它提供了很大的灵活性和插入系统管道的可能性。
之后,您将程序打包为 jar 并从您需要的目录运行它。
【讨论】:
这有两个类,
java.lang.Runtime 更多详情
http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html
java.lang.ProcessBuilder 更多详情
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html
我使用过流程构建器,为此您需要先创建一个流程构建器的实例并在其上调用 start 方法,然后将要执行的命令作为构造器参数传递。
ProcessBuilder pb = new ProcessBuilder("ls");
Process p = pb.start();
p.destroy();
【讨论】: