我一直在编写从终端开始的java程序。我的程序必须执行的任务之一是在我喜欢的文本编辑器中打开一个文本文件。我用以下命令很容易地完成了这个,但它只适用于某些情况。
Runtime.getRuntime().exec("emacs "+p.fullName);
当我在本地Linux上时,以及当我使用-X标志(对于X11)进入计算机时,这非常有用。在这些时候,编辑器会弹出一个单独的窗口。但是,如果我没有-X ssh,我心爱的文本编辑器永远不会出现。我正试图在与Java程序相同的终端中打开编辑器。
原因似乎有道理,java程序当前占用了终端,因此编辑器要么以分离状态创建,要么根本不创建。无论哪种方式,我想做的是以某种方式将我的程序放在后台并将我的编辑器设置为我的前台进程。除了上下文切换之外,还有更好的术语吗?
编辑:Emacs目前给我这个错误: emacs:标准输入不是tty
编辑:删除了Lanterna的提及,因为没有它就可以重现bug。