Java在前台打开vi编辑器
我试图在linux环境中使用Java代码打开一个vi编辑器(Java代码通过shell脚本执行)。编辑器应该在前台打开并成为活动终端,而java应该在后台运行 我尝试使用以下两个命令:-Java在前台打开vi编辑器,java,linux,editor,vi,Java,Linux,Editor,Vi,我试图在linux环境中使用Java代码打开一个vi编辑器(Java代码通过shell脚本执行)。编辑器应该在前台打开并成为活动终端,而java应该在后台运行 我尝试使用以下两个命令:- String[]command={“xterm”、“vi”和“/home/user/test.txt”}; 进程pr=Runtime.getRuntime().exec(命令) 进程p=newProcessBuilder(“vi”,“/home/user/test35.txt”).start() 在上面的一段代
我已经提到了这一点,但仍然是徒劳的。如果您想创建一个新的xterm并在该终端中执行一个命令,您需要使用
-e
传递该命令。试试这个:
ProcessBuilder pb = new ProcessBuilder("xterm", "-e", "vi", "/home/user/test.txt");
我所做的调试步骤是尝试通过命令打开终端&在Java代码中使用相同的命令。观察到问题,我需要设置DISPLAY=:0。如果我是通过root用户运行的,则对于其他用户,不需要导出显示
String []command = {"/usr/bin/xterm","-e", "vi", "/home/hscpe/test.txt"};
Process pr = Runtime.getRuntime().exec(command);
因为我是通过shell脚本运行java代码,所以我将在shell脚本中添加export,即export DISPLAY=:0。现在将尝试将编辑器设置为可编辑(将通过按I进行刺激,即通过java robot插入)
我引用了&感谢您的建议,尝试更改了1)String[]命令={“xterm”、“-e”、“vi”、“/home/hscpe/test.txt”};进程pr=Runtime.getRuntime().exec(命令);2) Process p=new ProcessBuilder(“xterm”、“-e”、“vi”、“/home/hscpe/test35.txt”).start(),但徒劳无功,仍然没有成功。此外,还未显示任何流程我是否需要在系统级别更改任何内容?或者我遗漏了什么?