是
Runtime.getRuntime().exec("cmd /c");
独立于平台还是我必须在参数中传递特定于平台的命令?
谢谢
命令 cmd/c start/b java -jar
的 linux 等价物是什么
最佳答案
Runtime.getRuntime().exec() 在某种程度上是平台独立的,它将在每个平台上启动一个外部可执行文件。可执行文件本身当然必须存在,因此在 Linux 上启动 notepad.exe 很可能无法正常工作(除非您安装了 Wine 和记事本,但这是另一回事)。
在 Windows 上,输入您要输入到 cmd.exe 中的任何内容(详情如下)。但是要在 Windows 上进行自动路径查找,您需要执行类似
的操作Runtime.getRuntime().exec("start iexplore.exe");
或
Runtime.getRuntime().exec("start my.pdf");
用关联的查看器打开 pdf 文件。
在 Linux 上,您可以做任何您在 Bash 等 shell 中可以做的事情,但您不能像管道运算符那样使用 bash 内置函数。您可以只启动程序并传递参数。
要在 Linux 上启动另一个 Java 实例,您可以使用:
Runtime.getRuntime().exec(new String[] {"java","-jar","myjar.jar"});
如果 java 可执行文件不在 PATH 中,则使用它的绝对路径。
关于java - Runtime.getRuntime().exec() 平台独立吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9398618/