當C程式編譯但一到運行就告訴你缺configuration, logging等類,反正遇到缺類的情況就網CLASSPATH中加×。jar的路徑吧;
注意 CLASSPATH是在檔案裡搜尋類;(沒有遞迴搜尋)
而PATH是在檔案裡搜尋檔案(遞迴式搜尋)
編譯時間出現各種hdfs.h找不到:
當我像下面寫makefile檔案就沒問題了:
HADOOP_INSTALL=/usr/local/hadoopJAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386PLATFORM=Linux-i386-32CPPFLAGS= -I$(HADOOP_INSTALL)/src/c++/libhdfsLIB = -L$(HADOOP_INSTALL)/c++/Linux-i386-32/libLIB += -I${JAVA_HOME}/includelibjvm=${JAVA_HOME}/jre/lib/i386/client/libjvm.soLDFLAGS += -lhdfstest: test.cgcc $? $(CPPFLAGS) $(LIB) $(LDFLAGS) $(libjvm) -o $@clean:rm test
在運行時各種類或庫so檔案找不到
我的~/.bashrc添加配置的環境變數:
就正常了:
export HADOOP_INSTALL=/usr/local/hadoop export HADOOP_JARDIR=${HADOOP_INSTALL}/jardir export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$HADOOP_JA RDIR/hadoop-core-1.0.4.jar:$HADOOP_JARDIR/hadoop-tools-1.0.4.jar:$HADOOP_JAR DIR/commons-configuration-1.6.jar:$HADOOP_JARDIR/commons-logging-1.1.1.jar:$ HADOOP_JARDIR/commons-logging-api-1.0.4.jar:$HADOOP_JARDIR/log4j-1.2.15.jar: $HADOOP_JARDIR/commons-lang-2.4.jar
1.如果要刪除某個變數可用:
unset 變數名
2.當要修改:
set 變數名
3.當要臨時添加一個變數:
export 變數名=
4.當要永久,則改設定檔吧;
/etc/profile
~/.bashrc
在裡面添加:
export 變數名=