Open a new prompt/terminal window from Java

前端 未结 4 942
独厮守ぢ
独厮守ぢ 2020-11-27 21:30

I want to open a new terminal window, which will run a certain command upon opening. It preferably needs to be a real native window, and I don\'t mind writing different code

相关标签:
4条回答
  • 2020-11-27 22:13

    Will this work?

    // windows only
    Process p = Runtime.getRuntime().exec("cmd /c start cmd.exe");
    p.waitFor();
    
    0 讨论(0)
  • 2020-11-27 22:19

    You need information about the OS you're running. For that you could use code like this:

    public static void main(String[] args)
        {
            String nameOS = "os.name";        
            String versionOS = "os.version";        
            String architectureOS = "os.arch";
            System.out.println("\n    The information about OS");
            System.out.println("\nName of the OS: " + 
            System.getProperty(nameOS));
            System.out.println("Version of the OS: " + 
            System.getProperty(versionOS));
            System.out.println("Architecture of THe OS: " + 
            System.getProperty(architectureOS));
        }
    

    Then for each OS you would have to use different invocations as described by Bala R and Mike Baranczak

    0 讨论(0)
  • 2020-11-27 22:21

    I've used this on Ubuntu(X11 Desktop) 10.04 ~ 14.04, and other Debian distro's. Works fine; although, you may consider using Java's ProcessBuilder.

         // GNU/Linux -- example
    
    Runtime.getRuntime().exec("/usr/bin/x-terminal-emulator --disable-factory -e cat README.txt");
    
     //  --disable-factory    Do not register with the activation nameserver, do not re-use an active terminal
    //    -e                  Execute the argument to this option inside the terminal.
    
    0 讨论(0)
  • 2020-11-27 22:31

    Opening an actual terminal window will definitely require different code for each OS. For Mac, you want something like:

    Runtime.getRuntime().exec("/usr/bin/open -a Terminal /path/to/the/executable");
    
    0 讨论(0)
提交回复
热议问题