【解決方法】Java Swing内でシェルコマンドラインを実行するにはどうすればよいですか?

プログラミングQA


私は Debian Linux 12 (将来は FreeBSD 14 でも使えるようになるかもしれません) で Java を開発する初心者プログラマーです。小さなアプリケーションを Java Swing ランチャーとして作成して、Web 開発用に Jetty、Glassfish、Wildfly などの Java Web サーバーを起動し、HTML を実行したいと考えています。 5 つのテンプレート (各 Java Web サーバーでどのように実行されるかをテストするため)。2 つの Java ソース コード (Java Swing インターフェイスを作成するものと、UNIX シェル スクリプトを実行するもの) を見つけました。唯一のことは、方法がわかりません。 Java Swing アプリ内で unix コマンドを実行するために Java を統合する方法、または Java を作成する方法。 それは可能ですか? また、Java Server Launcher のプロセスを停止する新しいボタンを作成する方法はありますか? 、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);

    }
}

私が試したこと:

いくつかのWebページでGoogleで調べましたが答えがありません。一部のユーザーはProcess Builderを教えてくれましたが、Java Swingを使用したProcess Builderのソースコードが見つかりません。

解決策 1

すでに提案されているように、使用する必要があります ProcessBuilder (Java SE 18 および JDK 18)[^]。 このドキュメントには、コマンドを作成し、これと関連クラスを使用してコマンドを開始する方法が示されています。 サンプルコードを含むチュートリアルは次のとおりです。 https://www.baeldung.com/java-lang-processbuilder-api[^]。

コメント

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