我需要在我的Java程序中执行Linux命令。我正在使用Windows 7操作系统。任何人都可以给我一个简单的语法来解决这个问题。
答案 0 :(得分:4)
必须在Linux
平台上执行linux
命令。你为什么要在windows 7
上执行它?
它没有任何意义。简单的答案是你不能在windows 7
上运行它。但您可以使用windows 7
在java
上运行Windows命令。
答案 1 :(得分:1)
如果要运行Linux命令,通常需要Linux操作系统,而不是Windows操作系统: - )
但是,有CygWin和GnuWin32等工具可以为您提供Windows下的许多UNIXy工具。我更喜欢后者,因为更多的开放许可(CygWin有一些限制,使其不适合我的目的)。
答案 2 :(得分:1)
答案并不简单。但是让我们开始做一个简单的区分
这需要很多东西。特别是在您的情况下,这意味着每个程序和命令的开箱即用。因此,很可能开箱即用,您尝试运行的命令(或程序)在Windows上不可用。
另一个要点是
shell是一个程序,可让您与操作系统以及计算机中的其他程序进行交互。具体来说,“命令行”shell是一种纯粹基于文本运行的shell。您可以输入某些“命令”然后执行某些操作。通常,这些是其他程序。例如,在linux中,一些常用的程序是:
这些实际上是编译过的程序。它们通常包含在开箱即用的Linux中。其中许多可以通过Cygwin安装在Windows上。 Cygwin提供了一个类似“linux”的环境,通过提供对Linux上常见程序的访问,但编译并准备在Windows上运行。
其他'命令',如'cd',实际上是shell的命令,因为它们在当前环境中完全状态(例如,'cd'更改shell使用的当前目录)。
因此,您需要了解的是,您要执行的命令是否实际上是已编译的程序,并下载/安装Cygwin,并使用绝对PATH运行您的程序以运行Cygwin程序。 或者,如果是'shell命令',那么find out which shell you are using,使用Cygwin下载并安装该shell,并运行该shell并发送一个参数。
答案 3 :(得分: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);
}
现在你已经将命令作为行了..如果你想进行更改,你可以这样做..