Runtime.getRuntime().exec()平台是独立的吗?

Tap*_*ose 3 java platform command runtime runtime.exec

Runtime.getRuntime().exec("cmd /c");
Run Code Online (Sandbox Code Playgroud)

平台独立还是我必须在参数中传递特定于平台的命令?

谢谢


什么是命令的linux等价物 cmd /c start /b java -jar

Dan*_*iel 7

Runtime.getRuntime().exec()在平台上是独立的,它将在每个平台上启动一个外部可执行文件.可执行文件本身必须在那里,所以在Linux上启动notepad.exe很可能不起作用(除非你安装了Wine和Notepad,但这是另一个故事).

在Windows上,输入您要输入cmd.exe的任何内容(详细信息如下).但要在Windows上进行自动路径查找,您需要执行类似的操作

Runtime.getRuntime().exec("start iexplore.exe");
Run Code Online (Sandbox Code Playgroud)

要么

Runtime.getRuntime().exec("start my.pdf");
Run Code Online (Sandbox Code Playgroud)

这将打开带有关联查看器的pdf文件.

在linux上,你可以在像Bash这样的shell中做任何事情,但你不能像管道操作符那样使用bash内置函数.你可以启动程序并传递参数.

要在linux上启动另一个Java实例,您可以使用:

Runtime.getRuntime().exec(new String[] {"java","-jar","myjar.jar"});
Run Code Online (Sandbox Code Playgroud)

如果它不在PATH上,请使用java可执行文件的绝对路径.