java - Runtime.getRuntime().exec() 平台独立吗?

标签 java command runtime platform runtime.exec

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/

相关文章:

java - 有关事件的电子邮件通知 - Oracle Queue

wpf - MouseDown、PreviewMouseDown 等...以及 MVVM 中的 COMMAND 绑定(bind)

c# - 使用 NServiceBus 在本地发布/接收消息

C++强制编译时错误基于调用构造函数

java - 在 Eclipse 插件运行时询问用户 "object"

java - 列表式解释

java - 为什么输入流的返回类型不是int?

java - Spring Boot 中的子 Controller

linux - 使用 Linux/Unix 命令替换文件中的行 block

java - 从java执行命令提示符命令来创建jar文件