Java在前台打开一个vi编辑器

时间:2017-06-02 04:11:36

标签: java linux editor vi

我正在尝试在linux env中使用Java代码打开一个vi编辑器(java代码通过shell脚本执行)。编辑器应该在前台打开&成为活动终端,而java应该在后台运行。

我尝试使用以下两个命令: -

  1. String [] command = {“xterm”,“vi”,“/ home / user / test.txt”};  Process pr = Runtime.getRuntime()。exec(command);

  2. 进程p = new ProcessBuilder(“vi”,“/ home / user / test35.txt”)。start();

  3. 在上面的代码之一中,如果检查ps -ef | grep vi,我能够完成这个过程,但它在后台运行。我想在前台运行它作为活动终端作为用户,他将文本输入到编辑器中。而java将在后台运行。  任何建议或片段。

    我已经提到了Open VIM with Java application,但仍然徒劳无功。

2 个答案:

答案 0 :(得分:0)

如果要在该终端中创建新的xterm 执行命令,则需要使用-e传递命令。试试这个:

ProcessBuilder pb = new ProcessBuilder("xterm", "-e", "vi", "/home/user/test.txt");

答案 1 :(得分:0)

我做的调试步骤是我尝试通过命令&打开一个终端。在Java代码中使用相同的命令。问题发现我需要设置DISPLAY =:0。如果我通过root用户运行,则对于其他用户导出不需要DISPLAY

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机器人插入)。

我提到here& here