如何在Java中运行Cygwin?

4
我想从Java开始使用nutch。如何从Java程序启动cygwin?
5个回答

2
与其使用Java启动Cygwin来调用Nutch,您可能应该考虑直接将Nutch与您的Java应用程序集成。这里有一些文档:链接
“虽然Nutch Web应用程序是入门搜索的好方法,但大多数使用Nutch的项目需要更紧密地将搜索功能与他们的应用程序集成。根据应用程序,有各种实现此目的的方法。我们将在这里介绍两种方法:使用Nutch API和使用OpenSearch API。”

没有Cygwin可以启动。如果你指的是cygwin批处理文件,那只是运行bash。 - anon
@Neil:是的,我是指运行bash来启动Nutch。 - Adamski
尽管我已经看到了Havenard的答案,但我想表达的是“与其使用Java来启动另一个可执行文件”。 - Adamski

2
首先,您需要将bash.exe设置为环境变量,这样该行才能启动bash。
Runtime rt= Runtime().getRuntime().execute("bash");

1
如果您正在尝试运行需要 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 中安装了Cygwin。


1
您可以像使用任何常规的 Windows 控制台应用程序一样,无需经过 Cygwin,使用任何 Cygwin 程序。查看 Cygwin\bin\ 目录。只要同时带上 CYGWIN1.DLL 的副本,您甚至可以将想要的程序带到您的应用程序目录中。

2
请注意,Cygwin DLL 是GPL许可的。如果您想在自己的代码中使用Cygwin功能,则您的代码必须遵循GPL许可,或者您需要从Red Hat购买非GPL许可证。 - anon

0
一个更有趣、更聪明的做法是从Cygwin启动Nutch或使用真正的Linux/Unix系统。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接