windows平台下在Cygwin中運行Nutch1。2的抓取命令提示JAVA_HOME not set解決方案

來源:互聯網
上載者:User

本人由守望者MS原創

問題分析:

最近在研究Nutch+hadoop。在unbutu server上部署了一套正式的程式,但是由於調試起來不方便,於是在本機上(windows Server 2003)採用cygwin類比方式搭建了一個簡單的Nutch1.2測試環境。

根據配置方案,在cygwin中進行到:

bin/nutch crawl url.txt –dir localweb –depth 2 –topN 100 –threads 2(註:參數可根據需求改寫)命令時,cygwin提示JAVA_HOME not set.

這個提示資訊說明了原生JAVA SDK的環境變數沒有配置。(因為之前在本機一直做JAVA的開發,所以下意識的開啟cmd,輸入javac命令,命令可以執行,這就說明我的環境變數配置沒有問題,但是為什麼在cygwin中提示沒有配置呢,接下來我們繼續檢查問題)。

開啟我的電腦(右鍵)->屬性->進階->環境變數,檢查環境變數。

CLASSPATH:.;C:\Program Files\Java\jdk1.6.0_24\bin(剩下的略去)

發現也沒有問題。

到底是為什麼呢?

之後開啟cygwin,輸入env查看環境變數的類比配置,在PATH中發現重要訊息。

可以看出,cygwin把windows的環境變數全部類比成了自己的模式,而這裡的一些特別的路徑是根據%JAVA_HOME%,%systemroot%之類的目錄配置去解析的。

所以問題的根源在於我前期做JAVA開發的時候,設定環境變數時沒有設定%JAVA_HOME%變數,而是根據網上的一些教程,直接在CLASSPATH和PATH中直接寫入絕對路徑,導致cygwin無法正確的解析。

解決方案:

找到問題所在後,在windows環境變數中增加JAVA_HOME變數,並相應的把原來的絕對路徑中的SDK所在的根目錄路徑換成%JAVA_HOME%,關閉cygwin,重新開啟執行命令,OK,解決問題。

如果還是不行,大家還可以在環境變數中加入NUTCH_JAVA_HOME的變數,值跟JAVA_HOME的一樣。

注意:JAVA_HOME的變數值後千萬不能加分號。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.