2012-07-19 63 views
0

我需要我的Java控制台应用程序来执行以下操作:打开VIM与Java应用程序

  1. 打开VIM
  2. <用户输入字的多行:WQ>
  3. 我的应用程序应该再是能够获得vim输入并将其打印在终端中。

到目前为止我被困在1 ..看起来不可能让Java打开VIM!

下面是一些非功能性的代码,我一直在摆弄有:大加赞赏

call system text editor

http://www.linglom.com/2007/06/06/how-to-run-command-line-or-execute-external-application-from-java

咨询

编辑

好了,所以下面就打开VIM但中背景。任何方式在这个?从Java

String[] command = {"/usr/bin/vim", "test.txt"}; 
Process vimProcess = Runtime.getRuntime().exec(command); 
vimProcess.waitFor(); 
+0

你尝试过什么?我相信运行一个“/ usr/bin/vim”作为cmd应该可以工作1 – shem 2012-07-19 10:59:12

+0

我试图打开一个vi编辑器,如果使用检查窗口并调用Runtime.getRuntime().exec(“notepad C:\\的test.txt“);我能够实现它。但是当我在Linux上尝试相同的时候,Runtime.getRuntime()。exec(“vi /tmp/test.txt”);我觉得它作为背景而不是活跃的终端开放。任何暗示相同。 – Kiran 2017-05-24 10:46:39

回答

0
  1. 运行VIM(注意,这将在GNOME工作,如果你使用KDE使用 “的konsole”):

    Process pr = Runtime.getRuntime().exec("gnome-terminal -e 'vim /tmp/tmpfile'");

  2. 等待用户将完成并退出:

    int exitVal = pr.waitFor(); //check for the right exitVal

  3. 读取输入和写入终端:

    System.out.println(FileUtils.raedFileToString(new File("/tmp/tmpfile")));

+0

以下行不会打开VIM: Process pr = Runtime.getRuntime()。exec(“/ usr/bin/vim/tmp/tmpfile”); 如果我直接运行/ usr/bin/vim,它会打开 – Jnor 2012-07-19 11:12:31

+0

它只是悬挂在右边?没有任何错误或什么。 – shem 2012-07-19 11:17:36

+0

我运行jar并没有任何反应: jn @ UL80Vt:〜/ NetBeansProjects/Test/dist $ java -jar Test.jar jn @ UL80Vt:〜/ NetBeansProjects/Test/dist $ – Jnor 2012-07-19 11:20:32

相关问题