我需要在我的 Java 程序中执行 Linux 命令。我正在使用 Windows 7 操作系统。谁能给我一个简单的语法来解决这个问题。
4 回答
必须在平台Linux
上执行命令。linux
你为什么要执行它windows 7
?这没有任何意义。简单的答案是你不能在windows 7
. 但是您可以在windows 7
使用java
.
答案并不简单。但是让我们开始做一个简单的区分
Windows 和 Linux 是两个不同的操作系统
这涉及到很多事情。特别是在您的情况下,这意味着不同的程序和命令集将开箱即用。因此,很可能开箱即用,您尝试运行的命令(或程序)在 Windows 上不可用。
另一个重要的一点是
命令行“命令”有时是程序,有时是您正在使用的 shell 的命令
shell是一个程序,它允许您与操作系统和计算机中的其他程序进行交互。具体来说,“命令行”shell 是一种纯粹基于文本运行的 shell。您可以输入某些“命令”,然后执行某些操作。通常,这些是其他程序。例如,在linux中,其中一些常用的程序有:
- ls
- 猫
- ps
- 寻找
- grep
这些实际上是编译的程序。它们通常开箱即用地包含在 Linux 中。其中许多都可以使用Cygwin安装在 Windows 上。Cygwin 提供了一个“类 linux”环境,让您可以访问这些通常在 Linux 上找到但已编译并准备在 Windows 上工作的程序。
其他“命令”,如“cd”,实际上是 shell 的命令,因为它们在当前环境中完全有状态地起作用(例如,“cd”会更改 shell 使用的当前目录)。
你需要做什么
所以,你需要弄清楚你要执行的命令是否真的是一个编译过的程序,然后下载/安装Cygwin,并用绝对路径运行你的程序来运行Cygwin程序。或者,如果它是一个“shell 命令”,则找出您正在使用的 shell,下载并使用 Cygwin 安装该 shell,然后运行该 shell,并将参数发送给它。
尝试这个...
Runtime r = Runtime.getRuntime();
Process p = r.exec("linux command");
p.waitFor();
BufferedReader b = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = b.readLine()) != null) {
System.out.println(line);
}
现在您已经将命令作为 line.. 如果您想进行更改,您可以这样做..