-6

我需要在我的 Java 程序中执行 Linux 命令。我正在使用 Windows 7 操作系统。谁能给我一个简单的语法来解决这个问题。

4

4 回答 4

4

必须在平台Linux上执行命令。linux你为什么要执行它windows 7?这没有任何意义。简单的答案是你不能在windows 7. 但是您可以在windows 7使用java.

于 2013-06-18T04:44:02.953 回答
1

如果要运行 Linux 命令,通常需要 Linux 操作系统,而不是 Windows :-)

但是,有像 CygWin 和 GnuWin32 这样的工具可以提供许多 Windows 下的 UNIXy 工具。由于更开放的许可,我自己更喜欢后者(CygWin 有一些限制,使其不适合我的目的)。

一旦您知道要运行哪些Process命令,就可以查看 Java和/或Runtime类。

于 2013-06-18T04:44:09.630 回答
1

答案并不简单。但是让我们开始做一个简单的区分

Windows 和 Linux 是两个不同的操作系统

这涉及到很多事情。特别是在您的情况下,这意味着不同的程序和命令集将开箱即用。因此,很可能开箱即用,您尝试运行的命令(或程序)在 Windows 上不可用。

另一个重要的一点是

命令行“命令”有时是程序,有时是您正在使用的 shell 的命令

shell是一个程序,它允许您与操作系统和计算机中的其他程序进行交互。具体来说,“命令行”shell 是一种纯粹基于文本运行的 shell。您可以输入某些“命令”,然后执行某些操作。通常,这些是其他程序。例如,在linux中,其中一些常用的程序有:

  1. ls
  2. ps
  3. 寻找
  4. grep

这些实际上是编译的程序。它们通常开箱即用地包含在 Linux 中。其中许多都可以使用Cygwin安装在 Windows 上。Cygwin 提供了一个“类 linux”环境,让您可以访问这些通常在 Linux 上找到但已编译并准备在 Windows 上工作的程序。

其他“命令”,如“cd”,实际上是 shell 的命令,因为它们在当前环境中完全有状态地起作用(例如,“cd”会更改 shell 使用的当前目录)。

你需要做什么

所以,你需要弄清楚你要执行的命令是否真的是一个编译过的程序,然后下载/安装Cygwin,并用绝对路径运行你的程序来运行Cygwin程序。或者,如果它是一个“shell 命令”,则找出您正在使用的 shell,下载并使用 Cygwin 安装该 shell,然后运行该 shell,并将参数发送给它。

于 2013-06-18T04:58:06.177 回答
0

尝试这个...

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.. 如果您想进行更改,您可以这样做..

于 2013-06-18T04:47:16.530 回答