欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java调用Linux shell命令

程序员文章站 2022-02-06 11:36:48
...

思路

利用Java的Runtime获取到JVM运行环境,当项目部署到Linux上时,即可通过exec方法执行sh文件了。

具体实现

package com.xiaowuqin;

import java.io.IOException;
import java.io.InputStream;

public class ProcessDemo {
    private Process process;
    public ProcessDemo(String command) throws IOException, InterruptedException {
        process=Runtime.getRuntime().exec(command);
        int i = process.waitFor();
    }
    public InputStream getResult(){
        return this.process.getInputStream();
    }
}
package com.xiaowuqin;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException, InterruptedException {
        String shp="/bin/bash /opt/a.sh";
        String command=shp;
        ProcessDemo processDemo = new ProcessDemo(command);
        InputStream result = processDemo.getResult();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(result));
        System.out.println(bufferedReader.readLine());
    }
}

踩坑点,在Linux上报错:

Error: Could not find or load main class

原因及解决:
当前目录是.class文件所在目录,要运行.class字节码文件,需要将当前目录加入系统变量CLASSPATH,系统才能找到当前目录下的Java类。

相关标签: java大神之路