如何从Java运行cygwin?

我想从Java开始nutch。 如何从Java程序启动cygwin?

首先,您必须将bash.exe设置为环境变量,以便此行将启动bash。

Runtime rt= Runtime().getRuntime().execute("bash"); 

而不是使用Java来启动Cygwin以调用nutch,您应该考虑将Nutch直接与Java应用程序集成。 这里有一些文档:

“虽然Nutch网络应用程序是开始搜索的好方法,但大多数使用Nutch的项目都要求搜索function与其应用程序更紧密地集成。有多种方法可以实现这一点,具体取决于应用程序。我们有两种方式我们在这里看到的是使用Nutch API并使用OpenSearch API。“

您可以使用任何Cygwin程序,而无需通过Cygwin,就像任何常规Windows控制台应用程序一样。 看看Cygwin \ bin \ dir。 您甚至可以将您想要的程序带到您的应用程序目录,然后带上它们的CYGWIN1.DLL副本。

一个更有趣,更聪明的事情,将从Cygwin或使用真正的Linux / Unix系统启动Nutch。

如果您正在尝试运行需要cygwin1.dll的二进制文件(其中包含可以从cygwin bash shell执行的大多数命令),那么您可以通过在路径环境变量中指定cygwin \ bin目录来运行它,如下所示:

 Process p = Runtime.getRuntime().exec( "C:/path/to/cygwin/binary.exe", new String[] { "PATH=C:\\cygwin\\bin" }); 

这假设您在C:\cygwin安装了C:\cygwin