¿Cómo ejecutar la línea de comando de Shell dentro de Java Swing?

programación


Soy un programador principiante en Java en Debian Linux 12 (es posible que más adelante también lo sea en FreeBSD 14) y me gustaría crear una pequeña aplicación, un lanzador Java Swing para iniciar algunos servidores web Java como Jetty, Glassfish y Wildfly para desarrollo web y ejecutar algo de HTML. 5 plantillas (para probar cómo se ejecutan en cada servidor web Java). Encontré dos códigos fuente de Java (uno para crear la interfaz Java Swing y otro que ejecuta el script de shell de Unix), lo único es que no sé cómo. integrar o cómo hacer que Java ejecute el comando Unix dentro de una aplicación Java Swing. ¿Es posible eso? ¿Y también hay alguna forma de crear un nuevo botón para detener el proceso de Java Server Launcher? , aquí está el código del Java Server Launcher:

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);

    }
}

Lo que he probado:

Lo revisé en Google en algunas páginas web pero no respondí, algunos usuarios me dijeron Process Builder pero no puedo encontrar ningún código fuente con Process Builder con Java Swing.

Solución 1

Como ya te sugerimos, debes usar Constructor de procesos (Java SE 18 y JDK 18)[^]. La documentación muestra cómo crear un comando y utilizar este y las clases asociadas para iniciarlo. Y aquí hay un tutorial con código de muestra: https://www.baeldung.com/java-lang-processbuilder-api[^].

コメント

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