1

OSを知らなくてもJavaからコマンドラインを起動する方法はありますか?たとえば、このメソッドはLinux OSの場合はターミナルシェルを開き、Windowsの場合はコマンドラインを開きます。

私は(前の質問を見て)OSをチェックしてから適切なコマンドラインを開くことができることを知っていますが、OSに依存しないJavaメソッドからコマンドラインを開く方法はありますか?

4

3 に答える 3

2

プラットフォーム間でそれを行う直接または統一された方法はありません。あなたが達成できる一つの方法は

  1. OSを決定します(を使用System.getProperty("os.name"))。
  2. 次に、OSに応じて、OS固有のコマンドを実行します。

例:(ここから抜粋したスニペット)

           String OS = System.getProperty("os.name").toLowerCase();

        if (isWindows(OS)) {
            String path = "c:\\";
            Runtime.getRuntime().exec(new String[] { "cmd.exe", "/C", "\"start; cd "+path+"\"" });;
        } else if (isMac(OS)) {
            //Open Mac Prompt
        } else if (isUnix(OS)) {
            //Open UnixPrompt
        } else if (isSolaris(OS)) {
            //Open Solaris Prompt
        } else {
            System.out.println("Your OS is not support!!");
        }

public static boolean isWindows(String OS) {

        return (OS.indexOf("win") >= 0);

    }

    public static boolean isMac(String OS) {

        return (OS.indexOf("mac") >= 0);

    }

    public static boolean isUnix(String OS) {

        return (OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0 );

    }

    public static boolean isSolaris(String OS) {

        return (OS.indexOf("sunos") >= 0);

    }

別のOSに関連するコードを探してください

注:これは単なるコードスニペットです。そのままではコンパイルされません。

于 2013-01-18T07:02:04.677 に答える
0

コマンド:

Runtime.getRuntime().exec("command")

すべてのデスクトップ/ラップトップOSプラットフォームで動作します。

于 2013-01-18T06:47:01.440 に答える
0

Javaを任意のOSにインストールすると、Javaを使用して独自のプログラムを作成するだけです。WindowsのコマンドラインまたはLinuxのターミナルはOSの所有物です。

したがって、Javaにターミナルを直接開くAPIがあったとしても、そのメソッドはオペレーティングシステムも内部的にチェックします。

于 2013-01-18T12:17:09.483 に答える