Làm cách nào để chạy dòng lệnh shell bên trong java swing?

lập trình


Tôi là một lập trình viên java mới bắt đầu trên Debian Linux 12 (Sau này cũng có thể có trên FreeBSD 14) và tôi muốn tạo một ứng dụng nhỏ làm trình khởi chạy Java Swing để khởi chạy một số máy chủ web java như Jetty, Glassfish và Wildfly để phát triển web và chạy một số HTML 5 mẫu (để kiểm tra xem chúng chạy như thế nào trong mỗi Máy chủ Web Java). Tôi đã tìm thấy hai mã nguồn Java (một để tạo giao diện Java Swing và một để chạy tập lệnh shell unix), điều duy nhất là tôi không biết làm thế nào để tích hợp hoặc cách làm cho java chạy lệnh unix bên trong ứng dụng Java Swing. Có thể làm được điều đó không? và cũng có cách nào để tạo nút mới để dừng quá trình Trình khởi chạy máy chủ Java không? , đây là mã của Trình khởi chạy máy chủ Java:

Java
import java.awt.*;
import javax.swing.*;

public class JavaServerLauncher {

    static JFrame frame;
    static JPanel panel, panelData;
    static JMenuBar menuBar;
    static JMenu menuFile, menuSetting, menuOption;
    static JMenuItem itemNew, itemOpen, itemSave, itemPrint, itemOption, itemClose, itemView, itemReports;
    static JToolBar toolBar;
    static Icon iconMenu = UIManager.getIcon("html.pendingImage");
    static JButton barSave, barEdit, barClear, barDelete;
    static ButtonGroup group;
    static JRadioButtonMenuItem subFont1, subFont2, subFont3, subFont4, subFont5;
    static JCheckBoxMenuItem checkPrefer;
    static JLabel label;
    static JTextField textFirst, textMiddle, textLast;
    static JCheckBox checkGender;

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                gui();
            }
        });
    }

    public static void gui() {

        frame = new JFrame("Java Server Launcher for Debian Linux");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(550, 300);

        JavaServerLauncher myMenu = new JavaServerLauncher();
        myMenu.myMenuBar();
        myMenu.myToolBar();
        frame.setJMenuBar(menuBar);
        frame.add(toolBar, BorderLayout.SOUTH);

        frame.pack();
        frame.setVisible(true);
    }

    public void myToolBar() {

        toolBar = new JToolBar(JToolBar.HORIZONTAL);
        frame.add(toolBar);


        barSave = new JButton("Apache TomCat", iconMenu);
        toolBar.add(barSave);

        barEdit = new JButton("Jetty Server", iconMenu);
        toolBar.add(barEdit);

        barClear = new JButton("GlassFish 7", iconMenu);
        toolBar.add(barClear);

        barDelete = new JButton("Wild Fly", iconMenu);
        toolBar.add(barDelete);
        
        barDelete = new JButton("Turn Off", iconMenu);
        toolBar.add(barDelete);
    }

    public void myMenuBar() {
        menuBar = new JMenuBar();
        frame.setJMenuBar(menuBar);

    }
}

Những gì tôi đã thử:

Tôi đã kiểm tra google trên một số trang web nhưng không có câu trả lời, một số người dùng đã nói với tôi về Process Builder nhưng tôi không thể tìm thấy bất kỳ mã nguồn nào với Process Builder với Java Swing.

Giải pháp 1

Như đã đề xuất cho bạn, bạn cần sử dụng Trình tạo quy trình (Java SE 18 & JDK 18)[^]. Tài liệu này chỉ ra cách xây dựng một lệnh và sử dụng lệnh này cũng như các lớp liên quan để khởi động nó. Và đây là hướng dẫn với mã mẫu: https://www.baeldung.com/java-lang-processbuilder-api[^].

コメント

タイトルとURLをコピーしました