java - 使用 Runtime.getRuntime().exec() 从 Java Swing 应用程序启动 jEdit

标签 java swing netbeans jedit

我正在编写一个在 Red Hat Enterprise Linux 5 服务器上运行的 Java Swing 应用程序,我想启动 jEdit 来查看日志文件。

这是一些示例代码。

public static void main(String[] args) throws IOException, InterruptedException {

    String cmd = "sh -c \"java -jar /tmp/jEdit/jedit.jar /tmp/test.txt\"";

    System.out.println(cmd);

    Runtime.getRuntime().exec(cmd);

}

输出为:

sh -c“java -jar/tmp/jEdit/jedit.jar/tmp/test.txt”

如果我将 cmd 输出复制并粘贴到终端窗口中,它运行正常。

我尝试了一堆 cmd 值,但我永远无法让 jEdit 窗口可见。

经过更改,此过程在 Windows 上运行良好。

我所做的事情可以在 Linux 上实现吗?

提前致谢!

最佳答案

由于 jEdit 是用 Java 实现的,也许检查源代码以了解 main 的内容会更容易。方法(在 jedit.jar 中包含的 list 文件中声明的类中)执行相同的操作,而不使用 Runtime.getRuntime().exec()完全没有。

如果您确实想坚持使用它,您可以尝试将各个命令作为数组传递给 exec(),这通常为我解决了此类问题。

关于java - 使用 Runtime.getRuntime().exec() 从 Java Swing 应用程序启动 jEdit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1725134/

相关文章:

java - 我什么时候应该在java中使用 JFrame.add(component) 和 JFrame.getContentPane().add(component)

java - JCombobox 和 Switch 语句

netbeans - 如何关闭netbeans欢迎屏幕?

java - 在 Netbeans 平台中处理和显示没有文件扩展名的文件的最佳方式?

java - 使用正则表达式查找一组+JAVA

java - 如何配置禁止 EAR 文件内 WAR 文件的启动?

Java elasticsearch spring-data 设置不同的索引字段名称

java - "PDF"场景当前发展的良好来源是什么?

java - 为什么会出现这样的输出呢?

java - 如何在 JComboBox 中填充数据?