无法为hadoop生成jar文件

cx6n0qe3  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(375)

我有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

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
o8x7eapl

o8x7eapl1#

如果使用java7&javax.json库,则不需要包含任何外部文件。但是如果使用java6&org.json库,就必须显式地添加jar。但它似乎在eclipse中起作用。所以我猜你是在用jdk6和hadoop。如果您将其更改为用于hadoop的jdk7,问题将得到解决。
它在eclipse中工作,因为您使用jdk7配置了构建路径。
如果您使用maven,就必须在pom.xml文件中提到json lib依赖项。
如果不使用maven,只需将json lib jar复制粘贴到hadoop lib dir中,然后重新启动hadoop。会有用的。

相关问题