在Ubuntu 11.10上的hadoop 0.23.0 java中的类路径问题

时间:2012-05-08 04:08:56

标签: java hadoop classpath

Client.java:6: package org.apache.hadoop.conf does not exist
import org.apache.hadoop.conf.Configured;
                             ^
Client.java:7: cannot find symbol
symbol  : class Tool
location: package org.apache.hadoop.util
import org.apache.hadoop.util.Tool;
                             ^
Client.java:8: cannot find symbol
symbol  : class ToolRunner
location: package org.apache.hadoop.util
import org.apache.hadoop.util.ToolRunner;
                             ^
Client.java:12: cannot find symbol
symbol: class Configured
public abstract class Client extends Configured implements Tool {
                                     ^
Client.java:12: cannot find symbol
symbol: class Tool
public abstract class Client extends Configured implements Tool {
                                                           ^
[checking Client]
[total 685ms]
5 errors

我如何设置classpath。

我这样设置:

CLASSPATH=$CLASSPATH:$HADOOP_HOME::$HADOOP_HOME/modules:$HADOOP_HOME/lib

即使我在命令行中直接指向jars的classpath也无法运行。

3 个答案:

答案 0 :(得分:0)

你可以用这个..

export CLASSPATH = ${CLASSPATH}:/path    // path of your jar..

看看这个Setting the class path

答案 1 :(得分:0)

如果您正在尝试编译代码,您应该考虑使用像Maven / Ant这样的构建工具,或者像Eclipse / Netbeans那样使用IDE。

我个人建议使用Maven,然后基本的pom.xml将如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                            http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany</groupId>
    <artifactId>project-name</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-core</artifactId>
            <version>0.20.2</version>
        </dependency>
    </dependencies>
</project>

答案 2 :(得分:0)

必须明确指定Jars,或者如果运行JDK6 +,则可以使用通配符。仅仅指定一个带有jar的目录是不够的。

任何classpath教程/资源都可以在不到几天的时间内解决这个问题。此信息也包含在Oracle关于运行和编译Java代码的文档中。