日期:2014-05-16 浏览次数:20782 次
package com.rockton.gpsrouter.utils; import java.io.IOException; import java.io.InputStream; public final class LinuxCmdEngin { public static final String processUseBasic(String command) { Process p = null; StringBuilder sb = new StringBuilder(); try { String[] comands = new String[] { "/bin/sh", "-c", command }; p = Runtime.getRuntime().exec(comands); String error = read(p.getErrorStream()); String outInfo = read(p.getInputStream()); String resultCode = "0";//脚本中输出0表示命令执行成功 if (error.length() != 0) { //如果错误流中有内容,表明脚本执行有问题 resultCode = "1"; } sb.append(resultCode); sb.append(error); sb.append(outInfo); p.waitFor(); } catch (Exception e) { } finally { try { p.getErrorStream().close(); } catch (Exception e) { } try { p.getInputStream().close(); } catch (Exception e) { } try { p.getOutputStream().close(); } catch (Exception e) { } } return sb.toString(); } public static final String read(InputStream in) throws IOException { StringBuilder sb = new StringBuilder(); int ch; while (-1 != (ch = in.read())) sb.append((char) ch); return sb.toString(); } }
?? 在JVM中能够顺利的执行linux命令,可以带来很多可以想象的内容,例如,部署在linux上的服务,可以通过web实现在线管理。在我这里,tomcat和一个java桌面应用部署在同一个Linux服务器上, 这个桌面应用程序的网络管理就是通过上面代码实现,实现了在线网络管理。
?
可以进一步拓展,例如让其在线升级,文件上传后,复制了jar后可以立即重启,等等。
?
?
欢迎拍砖!