Linux下实现JAVA程序调用系统命令及脚本
一个简单的例子
前提准备
Linux 环境+jdk环境
vim TestLinux.java
import java.io.BufferedReader; import java.io.InputStreamReader; public class TestLinux { public static void main(String[] args) { try { Process process = Runtime.getRuntime().exec( "ls -l"); InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream()); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line ; while ((line=bufferedReader.readLine())!=null){ System.out.println(line); } }catch (Exception e){ e.printStackTrace(); } } }
写完后用javac TestLinux.java 编译下
编译成功后当前目录下会有TestLinux.class 编译后的文件
java TestLinux 即可看到 Linux系统下直接执行“ls -l”命令的结果
执行shell脚本
随便写一个shell脚本
vim hello
脚本内容:
#!/bin/bash
echo "hello"
写完后 记得赋权脚本可执行权限
编写java TestLinux2程序
import java.io.BufferedReader; import java.io.InputStreamReader; public class TestLinux2 { public static void main(String[] args) { try { String[]cmd =new String[]{"/bin/sh","-c","./hello"}; Process process = Runtime.getRuntime().exec( cmd); InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream()); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line ; while ((line=bufferedReader.readLine())!=null){ System.out.println(line); } }catch (Exception e){ e.printStackTrace(); } } } ~
一样的流程 编译后运作 即可看到系统执行hell脚本的结果
一个简单的案例 记录下 ~ 3 ~
凡所有相,皆是虚妄