2016-01-27 104 views
2

我有16个Java文件,我试图来生成使用下面的命令的Hadoop生态系统JAR文件:无法生成jar文件Hadoop的

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

JsonV.java是具有主类函数,这个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 
+0

,我在Eclipse中尝试这样做,它在那里做工精细, –

+0

这听起来像一个扶养问题我 – bmarkham

+0

可能是,,我有其他java文件,我已经将它们存储在单个封装 –

回答

0

如果你使用的Java 7 & javax.json lib中,客人不愿意需要包括任何外部文件。但是如果您使用Java 6 & org.json库,则必须明确添加JAR。但它似乎在日食中起作用。所以我猜你正在用hadoop使用jdk6。如果您将其更改为jdk 7 for hadoop,则问题将得到解决。

它可以在Eclipse中,因为你与JDK 7

配置您的构建路径如果你使用Maven的时候,就不得不提到在pom.xml文件的JSON库依赖。

如果你不使用Maven的,只要复制粘贴您的JSON的lib罐子在Hadoop中的lib目录,并重新启动的Hadoop。它会工作。

+0

我没有任何其他的外部jar文件解析JSON数据工作,,我只有JAVA文件,, ,并将所有jar文件存储在单个包中。 –

+0

如果使用Java 7和javax.json库,则不需要包含任何外部文件。但是,如果您使用Java 6&org.json库,则必须明确添加JAR。但它似乎在日食中起作用。所以我猜你正在用hadoop使用jdk6。如果你改变它为JDK Hadoop的7,这个问题将得到解决 – Thanga

+0

先生我使用org.json ligrary与JDK7,所以它在Eclipse工作正常,,,如何解析JSON数据使用javax.json LIB –