告诉System.out.print()在java中打印到的位置

告诉System.out.print()在java中打印到的位置,java,macos,printing,terminal,Java,Macos,Printing,Terminal,如果我使用System.out.print(“Hello World”)并在IDE中运行它,它将打印到IDE输出。如果我将它编译成一个.jar文件并从终端(mac)运行它,那么它将打印到终端;但如果我只是双击它,它没有GUI,那么它将不会在任何地方打印。有没有办法让它像终端一样在某个app/exe中打印 例如: Runtime runTime = Runtime.getRuntime(); Process process; process = runTime.exec("open -a term

如果我使用System.out.print(“Hello World”)并在IDE中运行它,它将打印到IDE输出。如果我将它编译成一个.jar文件并从终端(mac)运行它,那么它将打印到终端;但如果我只是双击它,它没有GUI,那么它将不会在任何地方打印。有没有办法让它像终端一样在某个app/exe中打印

例如:

Runtime runTime = Runtime.getRuntime();
Process process;
process = runTime.exec("open -a terminal");
[some code here]
System.out.print("Hello World");
它将hello world打印到终端

额外信息:我正在使用OSX,我选择的IDE是netbeans


编辑:我不想打印到文件,我想专门打印到终端,这样我仍然可以接收输入,使用
java jar filename.jar>output.out将其打印到终端中的文件中
输出文件保存在当前目录中。

它将打印到标准输出。 要使输出转到其他地方,您可以重定向stdout以打印到其他流,例如文件。例如,见:


在这种情况下,如果你想“双击”某个东西,你应该创建一个快捷方式,通过重定向输出的命令行启动你的程序。

你的问题是“它去哪里了?”还是“有没有办法打开终端并将东西打印到它上?”?一个解决方案是创建你自己的GUI。用于控制台打印。输出转到标准输出。这取决于JavaVM进程是如何启动的。但是,您可以在您的程序中重定向它,例如,正如已经建议的那样,将其重定向到一个文件中,或者可能自己捕获它并将其推送到使用java GUI工具包创建的窗口中,或者通过在将捕获和显示输出的其他内容中启动jvm。我不想要GUI,我的问题是如何告诉它去哪里。我发现了一个类似System.setOut()的命令。这是我的答案吗?如果是,我该如何使用它?