[英]Could not load class when executed with -cp option of `'hadoop classpath`
我的問題與這一問題非常接近,已經得到解答。 使用-cp選項執行時無法加載類
但是,情況略有不同
$ javac -cp `hadoop classpath` GrabHDFSBlockInfo.java
$ java -cp `hadoop classpath` GrabHDFSBlockInfo
Error: Could not find or load main class GrabHDFSBlockInfo
$ ls GrabHDFSBlockInfo*
GrabHDFSBlockInfo.class GrabHDFSBlockInfo.java
所以在這種情況下,我想使用hadoop classpath
的快捷方式。
非常感謝您的幫助
德邁
編輯:謝謝大家的幫助。 由於hadoop classpath在我的集群上變化不大。 我最終通過設置帶有擴展類路徑填充':'的var來更改.bashrc。 然后,只需使用$ java -cp $ classpath GrabHDFSBlockInfo
hadoop classpath
的已知問題之一是它包含通配符。 結果,hadoop庫無法正確加載。 解決方法是,嘗試擴展通配符,將其替換為位於此處的jar序列。 這很可能會有所幫助。
出於類似目的的一些zsh腳本(盡管我只是在那里更新了現有的CLASSPATH):
classpath=`hadoop classpath | tr ':' ' ' | sort | uniq`
for file in ${=~classpath}(N)
do
export CLASSPATH=$CLASSPATH:$file
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.