2009-08-20 100 views

回答

0

首先,您必須將bash.exe設置爲環境變量,以便此行將啓動bash。

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

與其使用Java來啓動Cygwin來調用nutch,你應該考慮直接將Nutch與Java應用程序集成。還有一些文檔here

「雖然Nutch的web應用程序是開始使用搜索一個偉大的方式,使用Nutch的大部分項目都需要搜索功能將更加緊密地與他們的應用程序集成有各種不同的方式來實現這一目標。 ,這取決於應用程序。我們在這裏看到的兩種方法是使用Nutch API和使用OpenSearch API。「

+0

安裝了Cygwin沒有Cygwin的開始。如果你的意思是cygwin批處理文件,那只是運行bash。 – 2009-08-20 17:06:22

+0

@尼爾:是的,我的意思是運行bash以啓動Nutch。 – Adamski 2009-08-20 17:29:54

+0

...雖然看到Havenard的答案,但我想我的意思是「不要用Java來啓動另一個可執行文件」。 – Adamski 2009-08-20 17:30:56

0

如同任何常規的Windows控制檯應用程序一樣,您可以在不傳遞Cygwin的情況下使用任何Cygwin程序。看看Cygwin \ bin \ dir。您甚至可以將您想要的程序帶到您的應用程序目錄,並且您將帶有它們的CYGWIN1.DLL副本。

+2

請注意,Cygwin DLL是GPL許可的。如果您想在自己的代碼中使用Cygwin功能,您的代碼必須也是GPL,或者您需要從Red Hat購買非GPL許可證。 – 2009-08-20 17:05:10

0

一個更有趣,更聰明的事情就是從Cygwin啓動Nutch或使用真正的Linux/Unix系統。

0

如果你想運行需要cygwin1.dll(包括大多數命令可以從Cygwin的bash shell中運行),那麼你可以通過在PATH環境變量指定的cygwin \ bin目錄中運行二進制像這樣:

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

這裏假設你在C:\cygwin