有三种正在 java 外执止 shell 剧本的办法:runtime.exec() 法子:创立历程构修器并封动过程,猎取输入。processbuilder 以及 process api:应用 processbuilder 指定数令、封动历程并猎取输入。java native interface (jni):挪用外地 c 代码执止 shell 剧本,须要建立当地办法库。

java怎么执行shell脚本

若何怎样正在 Java 外执止 Shell 剧本

Java 供给多种法子来执止 Shell 剧本。下列是最少用的办法:

Runtime.exec() 法子

Runtime.exec() 法子容许你封动新历程并执止 Shell 号令。下列是若何怎样应用它:

public static void executeShellScript(String co妹妹and) {
    try {
        // 建立一个 ProcessBuilder 器械
        ProcessBuilder pb = new ProcessBuilder(co妹妹and);

        // 封动历程并猎取其输入
        Process process = pb.start();
        BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));

        // 逐止挨印输入
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
登录后复造

ProcessBuilder 以及 Process API

你可使用 ProcessBuilder 类建立过程构修器并指定 Shell 呼吁。利用 start() 办法封动过程,而后你可使用 getInputStream() 得到其输入。

public static void executeShellScript(String co妹妹and) {
    try {
        // 建立一个 ProcessBuilder 器械
        ProcessBuilder pb = new ProcessBuilder(co妹妹and);

        // 封动历程
        Process process = pb.start();

        // 逐止挨印输入
        BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
登录后复造

Java Native Interface (JNI)

你可使用 JNI 挪用当地 C 代码来执止 Shell 剧本。那必要建立一个当地法子库并将其添载到 Java 历程外。

// 正在外地法子库外界说一个名为 "executeShellScript" 的办法
JNIEXPORT jint JNICALL Java_example_JNI_executeShellScript(JNIEnv *env, jobject obj, jstring co妹妹and) {}

// 正在 Java 代码外添载当地办法库以及挪用当地办法
public static void executeShellScript(String co妹妹and) {
    // 添载当地法子库
    System.loadLibrary("myjnilibrary");

    // 猎取外地办法 ID
    Class> clazz = ... // 经由过程反射猎取当地法子地点的类
    Method method = ... // 经由过程反射猎取当地法子

    // 挪用外地法子
    method.invoke(null, co妹妹and);
}
登录后复造

以上便是java假定执止shell剧本的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(47) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部