无法为 Hadoop 生成 jar 文件



我有 16 个 Java 文件,我正在尝试使用以下命令为 Hadoop 生态系统生成 JAR 文件:

javac -classpath /usr/local/hadoop/hadoop-core-1.0.3.jar:/usr/local/hadoop/lib/commons-cli-1.2.jar  JsonV.java

JsonV.java是具有main函数的类,这个Java文件调用其他Java文件。我收到以下错误,有人可以帮我解决这个问题吗?

JsonV.java:37: error: cannot find symbol
JSONObject obj = new JSONObject(tuple[i]);
                     ^ 
  symbol:   class JSONObject
  location: class Map
JsonV.java:37: error: cannot find symbol
                    JSONObject obj = new JSONObject(tuple[i]);
                                         ^
  symbol:   class JSONObject
  location: class Map
JsonV.java:43: error: cannot find symbol
            }catch(JSONException e){
                   ^
  symbol:   class JSONException
  location: class Map
JsonV.java:58: error: cannot find symbol
            }catch(JSONException e){
                   ^
  symbol:   class JSONException
  location: class Reduce

如果使用 Java 7 和 javax.json lib,则无需包含任何外部文件。但是如果你使用 Java 6 和 org.json lib,你必须显式添加 JAR。但它似乎在日食中起作用。所以我猜你正在使用带有hadoop的jdk6。如果将其更改为 jdk 7 for hadoop,问题将得到解决。

它在 eclipse 中有效,因为您使用 jdk 7 配置了构建路径。

如果你使用 maven,你必须在 pom.xml 文件中提及 json lib 依赖项。

如果您不使用 maven,只需将 json lib jars 复制粘贴到 hadoop lib dir 中并重新启动 hadoop。它会起作用。

相关内容

  • 没有找到相关文章

最新更新