【问题标题】:How to execute UNIX native command in Java? [duplicate]如何在 Java 中执行 UNIX 本机命令? [复制]
【发布时间】:2012-01-12 11:10:01
【问题描述】:

可能重复:
How to run Unix shell script from java code?

我知道您可以使用 Runtime.exec() 或 ProcessBuilder 以这种方式在 Windows 上执行本机命令:

cmd /c command_goes_here

但是这在 UNIX 上的 quivelant 是什么?

或者所有命令都可以直接通过 Java 运行吗?它有像 Windows 那样的内部终端命令吗?

【问题讨论】:

标签: java unix


【解决方案1】:

它叫做Runtime.exec()。这就是 Java 的重点——编写一次,随处运行。

(是的,是的,同一个脚本不会到处运行;这就是Runtime 的用途,让您可以访问底层系统。)

Java 确实没有,但是,有控制屏幕的内部机制。为此,您需要使用通常的 AWT/SWT/Swing 等例程。

【讨论】:

  • 但是...使用 Runtime.exec() 运行 UNIX 命令是否适用于所有 UNIX 命令?还是有终端内部的命令?
【解决方案2】:

我的理解是 Java exec 基于 Posix exec* 调用。所以大概你需要或多或少地格式化本机命令,就像你在Posix 中所做的一样(尽管我不知道你是否需要像在 Posix 中那样指定命令名两次——我已经从未在 *nix 下尝试过 Java exec)。

需要注意的重要一点是,在 *nix 中,像 ls 这样的单个命令是独立的,而在 Windows 中,像 dir 这样的命令实际上只是 CMD 的参数。

【讨论】:

    【解决方案3】:

    正如其他人指出的那样,运行Runtime.exec() 将对您有所帮助。但要小心!从 Java 成功运行命令需要考虑几个因素。请务必先阅读this 文章,它解释了您需要了解的所有内容。

    【讨论】:

      猜你喜欢
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多