1

我正在尝试更新 2009 年用 Java/Eclipse 编写的 200,000 行程序。

我把它导入到最新的Eclipse/Java,有几个问题:

  1. 以下行(运行 inn 2009)生成错误消息

     try 
     {
         consoleProcess = Runtime.getRuntime().exec("/Applications/Utilities/Console.app/Contents/MacOS/Console");
      } 
      catch (Exception err) {
         err.printStackTrace();
      }
    

错误消息是“java.io.IOException:无法运行程序”/Applications/Utilities/Console.app/Contents/MacOS/Console”:错误=2,java.base/java.lang.ProcessBuilder 中没有这样的文件或目录.start(ProcessBuilder.java:1142)"

但是,该文件确实存在,它显示在查找器中(虽然不是在终端窗口的“ls”命令中,我也想在其中输入。)我可以单击它并运行它。我也不能以这种方式运行 BBEdit:但是我可以使用类似的代码运行 open/run XQuartz。

我开始尝试通过尝试使用以下代码打开控制台来解决此问题,但这会产生错误消息“控制台为空”

import java.io.Console;



    Console console = System.console();
    if(console == null) {
        System.out.println("The console is NULL");
    }        
    else 
    {
        String  ch=console.readLine();    
    }

非常感谢 !!

4

1 回答 1

1

使用 macOSopen命令运行应用程序:

open -a Console

您无法使用 in 中的ls命令找到 Console,/Applications因为 Finder 实际上显示的是/Applicationsmerge with的内容/System/Applications。Console的路径其实是:

/System/Applications/Utilities/Console.app/Contents/MacOS/Console

这种拆分是在 macOS Catalina 中引入的。

注意:System.console()完全是另外一回事,它在 Eclipse 中不可用。

于 2021-12-07T18:03:10.870 回答