Rumah masalah biasa Bagaimana untuk melaksanakan skrip shell

Bagaimana untuk melaksanakan skrip shell

Sep 25, 2023 am 10:27 AM
skrip shell

Kaedah untuk melaksanakan skrip Shell termasuk menggunakan kelas Runtime, kelas ProcessBuilder dan perpustakaan pihak ketiga seperti Apache Commons Exec. Pengenalan terperinci: 1. Gunakan kelas Runtime, iaitu kelas yang disediakan oleh Java untuk mengurus persekitaran runtime bagi aplikasi Melalui kaedah exec() kelas Runtime, anda boleh melaksanakan perintah atau skrip luaran 2. Gunakan kelas ProcessBuilder , yang disediakan oleh Java A kelas untuk mencipta proses sistem pengendalian dan sebagainya.

Bagaimana untuk melaksanakan skrip shell

Melaksanakan skrip Shell ialah proses menjalankan satu siri arahan Shell dalam sistem pengendalian. Dalam Java, skrip Shell boleh dilaksanakan dalam pelbagai cara, termasuk menggunakan kelas Runtime, kelas ProcessBuilder dan menggunakan perpustakaan pihak ketiga seperti Apache Commons Exec. Kaedah-kaedah ini diterangkan secara terperinci di bawah.

1. Gunakan kelas Runtime:

Kelas Runtime ialah kelas yang disediakan oleh Java untuk mengurus persekitaran runtime aplikasi. Melalui kaedah exec() kelas Runtime, arahan atau skrip luaran boleh dilaksanakan. Berikut ialah contoh kod yang menggunakan kelas Runtime untuk melaksanakan skrip Shell:

import java.io.IOException;
public class ExecuteShellScript {
    public static void main(String[] args) {
        try {
            // 执行Shell脚本
            Process process = Runtime.getRuntime().exec("sh /path/to/script.sh");
            
            // 获取脚本执行的输出
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            
            // 等待脚本执行完成
            int exitCode = process.waitFor();
            System.out.println("脚本执行完成,退出码:" + exitCode);
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}
Salin selepas log masuk

Dalam kod di atas, skrip Shell dilaksanakan melalui kaedah Runtime.getRuntime().exec(), menghantar dalam laluan dan parameter bagi skrip. Kemudian, dengan mendapatkan aliran input objek Proses, maklumat output skrip boleh dibaca. Akhir sekali, tunggu pelaksanaan skrip selesai dengan memanggil kaedah process.waitFor() dan dapatkan kod keluar skrip.

2. Gunakan kelas ProcessBuilder:

Kelas ProcessBuilder ialah kelas yang disediakan oleh Java untuk mencipta proses sistem pengendalian. Ia menyediakan cara yang lebih fleksibel untuk melaksanakan skrip shell dan boleh menetapkan pembolehubah persekitaran, direktori kerja, dll. Berikut ialah contoh kod yang menggunakan kelas ProcessBuilder untuk melaksanakan skrip Shell:

import java.io.IOException;
public class ExecuteShellScript {
    public static void main(String[] args) {
        try {
            // 创建ProcessBuilder对象
            ProcessBuilder processBuilder = new ProcessBuilder("sh", "/path/to/script.sh");
            
            // 设置工作目录
            processBuilder.directory(new File("/path/to/directory"));
            
            // 执行Shell脚本
            Process process = processBuilder.start();
            
            // 获取脚本执行的输出
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            
            // 等待脚本执行完成
            int exitCode = process.waitFor();
            System.out.println("脚本执行完成,退出码:" + exitCode);
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}
Salin selepas log masuk

Dalam kod di atas, objek ProcessBuilder dicipta dan laluan serta parameter skrip Shell ditetapkan. Direktori kerja skrip boleh ditetapkan menggunakan kaedah processBuilder.directory(). Kemudian, laksanakan skrip Shell dengan memanggil kaedah processBuilder.start() dan dapatkan objek Proses. Akhir sekali, dengan mendapatkan aliran input objek Proses, maklumat output skrip boleh dibaca.

3. Gunakan perpustakaan pihak ketiga:

Selain menggunakan kelas Java sendiri, anda juga boleh menggunakan perpustakaan pihak ketiga untuk melaksanakan skrip Shell, seperti Apache Commons Exec. Apache Commons Exec ialah perpustakaan Java sumber terbuka yang menyediakan cara yang lebih mudah untuk melaksanakan arahan dan skrip luaran. Berikut ialah contoh kod untuk melaksanakan skrip Shell menggunakan Apache Commons Exec:

import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.ExecuteException;
import org.apache.commons.exec.ExecuteResultHandler;
import org.apache.commons.exec.ExecuteWatchdog;
public class ExecuteShellScript {
    public static void main(String[] args) {
        try {
            // 创建CommandLine对象
            CommandLine commandLine = new CommandLine("sh");
            commandLine.addArgument("/path/to/script.sh");
            
            // 创建DefaultExecutor对象
            DefaultExecutor executor = new DefaultExecutor();
            
            // 设置超时时间
            ExecuteWatchdog watchdog = new ExecuteWatchdog(60000);
            executor.setWatchdog(watchdog);
            
            // 执行Shell脚本
            executor.execute(commandLine, new ExecuteResultHandler() {
                @Override
                public void onProcessComplete(int exitValue) {
                    System.out.println("脚本执行完成,退出码:" + exitValue);
                }
                
                @Override
                public void onProcessFailed(ExecuteException e) {
                    System.err.println("脚本执行失败:" + e.getMessage());
                }
            });
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Salin selepas log masuk

Dalam kod di atas, objek CommandLine dicipta dan laluan serta parameter skrip Shell ditentukan. Kemudian, buat objek DefaultExecutor dan tetapkan tamat masa. Jalankan skrip Shell dengan memanggil kaedah executor.execute() dan proses hasil pelaksanaan skrip melalui objek ExecuteResultHandler.

Ringkasnya, terdapat banyak cara untuk melaksanakan skrip Shell, termasuk menggunakan kelas Runtime, kelas ProcessBuilder dan perpustakaan pihak ketiga seperti Apache Commons Exec. Pembangun boleh memilih kaedah yang sesuai untuk melaksanakan skrip Shell berdasarkan keperluan dan senario tertentu, dan mendapatkan output dan kod keluar pelaksanaan skrip. Kaedah ini boleh membantu pembangun dengan mudah melaksanakan skrip Shell dalam program Java dan berinteraksi dengan sistem pengendalian.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan skrip shell. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menukar fail ESD kepada format ISO Bagaimana untuk menukar fail ESD kepada format ISO Feb 19, 2024 am 08:37 AM

Fail esd ialah format mampatan yang digunakan dalam sistem pengendalian Windows, manakala fail ISO ialah fail imej cakera yang digunakan untuk mencipta salinan cakera atau pemacu optik maya. Apabila kita perlu menukar fail esd kepada fail iso, ini mungkin kerana fail ISO lebih biasa digunakan dan lebih mudah digunakan. Perkara berikut akan memperkenalkan anda kepada beberapa kaedah biasa untuk melengkapkan proses penukaran ini. Kaedah 1: Gunakan ESDDecrypter ESDDecrypter ialah program yang digunakan khas untuk menyahsulit dan menukar fail esd kepada fail iso.

Bagaimana untuk melaksanakan fail .sh dalam sistem Linux? Bagaimana untuk melaksanakan fail .sh dalam sistem Linux? Mar 14, 2024 pm 06:42 PM

Bagaimana untuk melaksanakan fail .sh dalam sistem Linux? Dalam sistem Linux, fail .sh ialah fail yang dipanggil skrip Shell, yang digunakan untuk melaksanakan satu siri arahan. Melaksanakan fail .sh ialah operasi yang sangat biasa Artikel ini akan memperkenalkan cara melaksanakan fail .sh dalam sistem Linux dan memberikan contoh kod khusus. Kaedah 1: Gunakan laluan mutlak untuk melaksanakan fail .sh Untuk melaksanakan fail .sh dalam sistem Linux, anda boleh menggunakan laluan mutlak untuk menentukan lokasi fail. Berikut ialah langkah khusus: Buka terminal

Rahsia sistem fail akar Linux Rahsia sistem fail akar Linux Feb 15, 2024 pm 01:42 PM

Linux ialah sistem pengendalian sumber terbuka, mudah alih dan boleh disesuaikan yang digunakan secara meluas dalam pelbagai bidang, seperti pelayan, desktop, peranti terbenam, dsb. Teras Linux ialah kernel, yang bertanggungjawab mengurus sumber perkakasan dan menyediakan perkhidmatan asas. Walau bagaimanapun, kernel bukanlah entiti bebas dan memerlukan sistem fail untuk menyimpan dan mengakses pelbagai data dan program. Sistem fail ialah kaedah mengatur dan mengurus fail Ia mentakrifkan nama fail, lokasi, atribut, kebenaran dan maklumat lain. Di Linux, terdapat pelbagai jenis sistem fail, seperti ext4, xfs, btrfs, dsb., yang masing-masing mempunyai ciri dan kelebihan tersendiri. Walau bagaimanapun, di antara semua sistem fail, terdapat sistem fail khas, yang merupakan asas dan teras sistem Linux, iaitu

Mengapa saya tidak boleh melaksanakan fail kelawar pada Windows 7? Mengapa saya tidak boleh melaksanakan fail kelawar pada Windows 7? Feb 19, 2024 pm 03:19 PM

Mengapa win7 tidak boleh menjalankan fail kelawar Baru-baru ini, ramai pengguna yang menggunakan sistem pengendalian Windows7 telah melaporkan bahawa mereka tidak boleh menjalankan fail .bat. Ini mencetuskan perbincangan dan kekeliruan yang meluas. Mengapakah sistem pengendalian yang berfungsi dengan baik tidak boleh menjalankan fail .bat yang mudah? Pertama, kita perlu memahami latar belakang fail .bat. Fail .bat, juga dikenali sebagai fail kelompok, ialah fail teks biasa yang mengandungi satu siri perintah yang boleh digunakan oleh jurubahasa arahan Windows (cmd.ex

Tutorial Skrip Windows PowerShell untuk Pemula Tutorial Skrip Windows PowerShell untuk Pemula Mar 13, 2024 pm 10:55 PM

Kami telah mereka bentuk tutorial skrip Windows PowerShell ini untuk pemula, sama ada anda peminat teknologi atau profesional yang ingin meningkatkan kemahiran skrip anda. Jika anda tidak mempunyai pengetahuan awal tentang skrip PowerShell, artikel ini akan bermula dengan asas dan disesuaikan untuk anda. Kami akan membantu anda menguasai langkah pemasangan untuk persekitaran PowerShell dan membimbing anda melalui konsep dan ciri utama skrip PowerShell. Jika anda bersedia untuk mengetahui lebih lanjut tentang skrip PowerShell, mari kita mulakan perjalanan pembelajaran yang menarik ini bersama-sama! Apakah WindowsPowerShell? PowerShell ialah sistem arahan hibrid yang dibangunkan oleh Microsoft

Bagaimana untuk mengautomasikan tugas menggunakan PowerShell Bagaimana untuk mengautomasikan tugas menggunakan PowerShell Feb 20, 2024 pm 01:51 PM

Jika anda seorang pentadbir IT atau pakar teknologi, anda mesti sedar tentang kepentingan automasi. Khusus untuk pengguna Windows, Microsoft PowerShell ialah salah satu alat automasi terbaik. Microsoft menawarkan pelbagai alat untuk keperluan automasi anda, tanpa perlu memasang aplikasi pihak ketiga. Panduan ini akan memperincikan cara memanfaatkan PowerShell untuk mengautomasikan tugas. Apakah skrip PowerShell? Jika anda mempunyai pengalaman menggunakan PowerShell, anda mungkin telah menggunakan arahan untuk mengkonfigurasi sistem pengendalian anda. Skrip ialah koleksi arahan ini dalam fail .ps1. Fail .ps1 mengandungi skrip yang dilaksanakan oleh PowerShell, seperti Get-Help asas

Bagaimana untuk membuka fail url Bagaimana untuk membuka fail url Mar 28, 2024 pm 06:27 PM

Kaedah untuk menggunakan fail URL untuk membuka sumber Internet termasuk: klik dua kali untuk membuka menggunakan pelayar web. Bukanya dengan editor teks, salin alamat pautan dan tampalkannya ke dalam bar alamat penyemak imbas. Melalui baris arahan, gunakan perintah "mula" atau "buka" untuk menentukan laluan fail URL. Buat fail skrip yang mengandungi arahan untuk membuka fail URL.

Bagaimanakah penggunaan CPU dikira dalam Linux? Bagaimanakah penggunaan CPU dikira dalam Linux? Feb 15, 2024 am 11:15 AM

Apabila memerhatikan status berjalan perkhidmatan dalam talian pada pelayan dalam talian, kebanyakan orang suka menggunakan arahan teratas terlebih dahulu untuk melihat penggunaan CPU keseluruhan sistem semasa. Sebagai contoh, untuk mesin rawak, maklumat penggunaan yang dipaparkan oleh arahan atas adalah seperti berikut: Hasil output ini mudah untuk dikatakan, tetapi kompleks, ia tidak begitu mudah untuk memahami semuanya. Contohnya: Soalan 1: Bagaimanakah output maklumat penggunaan mengikut bahagian atas dikira Adakah ia tepat? Soalan 2: Lajur ni bagus Ia mengeluarkan overhed CPU semasa memproses? Soalan 3: wa mewakili iowait, jadi adakah CPU sibuk atau terbiar dalam tempoh ini? Hari ini kami akan menjalankan kajian mendalam tentang statistik penggunaan CPU. Melalui kajian hari ini, anda bukan sahaja akan memahami c