Jdk8中的Runtime类以及Process类结合起来可用于调用系统的命令行,具体使用参考JDK8手册
Jdk17版本中这两个类的使用有一定的改变,用起来会更加方便,有需要可以参考JDK17手册
代码示例
public static void JavaExec(String filename){
//需要在shell 终端中执行的命令 Runtime runtime = Runtime.getRuntime(); try {
//linux 下解压 名称为filename.gz 的压缩文件 Process process = runtime.exec("tar -xvf " + filename.gz); InputStream inputStream = process.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String str = null; while ((str = bufferedReader.readLine()) !=null ){ System.out.println(str); } try {
//等待上面进程执行完毕 process.waitFor();
//输出退出值。linux下正确退出的退出值都是 0 ,返回其他退出值都表示执行失败。 System.out.println("exitValue: "+process.exitValue()); } catch (InterruptedException e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); } }
标签:Shell,Java,命令行,Windows,filename,process,str,Runtime From: https://www.cnblogs.com/jdearfaust/p/16955453.html