使用Java打开终端并执行“java -jar”


晴天
2025-04-02 05:18:26 (12天前)
  1. 我正在尝试创建一个可执行的.jar,它可以在Mac的终端控制台中重新打开。 (为了有一个用户界面将命令输入程序)

//如果程序未打开…

3 条回复
  1. 0# 岁爵 | 2019-08-31 10-32



    用于创建进程,类

    Runtime

    已被课程所取代

    ProcessBuilder

    。关于课程的一篇非常古老但仍然相关的文章

    Runtime

    (因为它是在增加课程之前发表的

    ProcessBuilder

    到JDK)是

    当runtime.exec()不会

    并且也与课程相关

    ProcessBuilder




    如文章中所述,方法

    exec()

    不是“shell”,因此不会解析您作为单个命令提供的命令

    String

    参数。您可以通过提供一个数组来解析方法

    String

    秒。



    我建议你阅读这篇文章,还有

    的javadoc

    上课

    java.lang.ProcessBuilder



  2. 1# 那月静好 | 2019-08-31 10-32



    我最终使用的代码执行一些AppleScript代码:(正如DanielPryden建议的那样)




    1. public static void main(String[] args){
      if(args.length == 0 && System.getProperty(“os.name”).toLowerCase().contains(“mac”)){
      try {
      String path = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getAbsolutePath();
      String command = tell application \”Terminal\”\n +
      do script \”java -jar \’ + path + \’ isInConsole\”\n +
      close the front window\n + // because “do script…” opens another window
      activate\n +
      end tell”;
      String[] arguments = new String[]{“osascript”, “-e”, command};

    2.         Runtime.getRuntime().exec(arguments);
    3.         System.exit(0);
    4.     } catch (IOException | URISyntaxException e) {
    5.         // TODO Auto-generated catch block
    6.         e.printStackTrace();
    7.     }
    8. }
    9. // program continues...
    10. }

    11. </code>

登录 后才能参与评论