Java 无法为Hadoop生成jar文件

Java 无法为Hadoop生成jar文件,java,hadoop,jar,mapreduce,Java,Hadoop,Jar,Mapreduce,我有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是具有主函数的类,该java文件调用其他java文件。我得到下面的错误,有人能帮我解决这个问题吗 JsonV.java:37: error: cannot find sy

我有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是具有主函数的类,该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

如果使用Java7&javax.json库,则不需要包含任何外部文件。但是如果使用Java6&org.json库,则必须显式添加JAR。但它似乎在eclipse中起作用。所以我猜您是在hadoop中使用jdk6。如果您将其更改为JDK7 for hadoop,问题将得到解决

它在eclipse中工作,因为您使用jdk 7配置了构建路径

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


如果不使用maven,只需在hadoop lib dir中复制粘贴json lib jar并重新启动hadoop即可。它会起作用。

我在eclipse中尝试过,在那里效果很好,这听起来像是一个依赖性问题,我有其他java文件,我已经将它们存储在一个单独的包中,你说你可以在eclipse中创建JAR?先生,但我没有进入ubuntu终端,,eclipse生成的Jar文件在hadoop中不起作用,我没有任何其他外部Jar文件来解析Json数据,我只有JAVA文件,,,我将所有Jar文件存储在一个包中如果使用JAVA 7&javax.Json库,则不需要包含任何外部文件。但是如果使用Java6&org.json库,则必须显式添加JAR。但它似乎在eclipse中起作用。所以我猜您是在hadoop中使用jdk6。如果您将其更改为jdk 7 for hadoop,问题将得到解决。我将org.json ligrary与JDK7一起使用,因此它在eclipse中正常工作,,,如何使用javax.json解析json数据libHadoop 1与jdk 6 for mapreduce作业兼容。因此,请使用jdk6和org.json lib文件运行此程序