我知道您可以使用Runtime.exec()或ProcessBuilder以这种方式在Windows上执行本机命令:
cmd /c command_goes_here
但在UNIX上有什么讽刺呢?
或者所有命令都可以通过Java直接运行吗?它有像Windows那样的内部终端命令吗?
答案 0 :(得分:0)
它被称为Runtime.exec()
。这就是Java的一点 - 写一次在任何地方运行。
(是的,是的,相同的脚本不会在任何地方运行;这就是Runtime
的用途,可以让您访问底层系统。)
Java 不具有控制屏幕的内部机制。为此你需要采用通常的AWT / SWT / Swing等例程。
答案 1 :(得分:0)
我的理解是Java exec
基于Posix exec*
调用。所以大概你需要格式化本机命令或多或少与你在Posix中做的一样(虽然我不知道你是否需要在Posix中指定命令名两次 - 我从来没有在* nix下试过Java exec
。
需要注意的重要一点是,在* nix中,ls
等单个命令是独立的,而在dir
等Windows命令中,只是CMD的参数。
答案 2 :(得分:0)
正如其他人所指出的那样,运行Runtime.exec()
会对您有所帮助。但要小心!从Java成功运行命令时需要考虑几个因素。请务必首先阅读this文章,它解释了您需要了解的所有内容。