我有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
1条答案
按热度按时间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。会有用的。