我正在编写在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中包含的清单文件中声明的类中)做什么,而无需使用Runtime.getRuntime().exec()
完全没有
如果确实要坚持下去,可以尝试将单个命令作为数组传递给exec(),这通常为我解决了此类问题。