Javac没有正确注册类路径和方法,找不到符号

时间:2015-09-19 09:57:53

标签: java classpath javac apache-commons stringescapeutils

我正在尝试使用Apache Commons StringEscapeUtils。我的导入语句中有这行代码,

import org.apache.commons.lang3.StringEscapeUtils;

我已经下载了apache commons lang,将其解压缩并移动:

commons-lang3-3.4.jar

(注意:只有.jar文件,而不是它附带的任何其他内容。不确定是否重要)进入我的lib目录,我存储了所有其他.jar文件

我正在编译它:

javac -cp .:lib/* Main.java

然而,javac给了我这个错误:

./FactualResultDeserializer.java:43: error: cannot find symbol
                    factualObject.setTitle(unescapeHtml(unescapeJava(resultActivity.get(TITLE).getAsString())));
                                                        ^
  symbol:   method unescapeJava(String)
  location: class FactualResultDeserializer
./FactualResultDeserializer.java:51: error: cannot find symbol
                            categories[j] = unescapeHtml(unescapeJava(catArray.get(0).getAsJsonArray().get(j).getAsString()));
                                                         ^
  symbol:   method unescapeJava(String)
  location: class FactualResultDeserializer
2 errors

它没有给我一个来自同一个StringEscapeUtils包的unescapeHtml的错误。

我已尝试清除.class文件以重新编译。它没有解决问题,帮助将不胜感激。

提前致谢!

1 个答案:

答案 0 :(得分:1)

使用类的名称对方法调用进行前缀以避免任何歧义。 org.apache.commons.lang3.StringEscapeUtils中没有unescapeHtml,请使用unescapeHtml3或unescapeHtml4。

factualObject.setTitle( 
   StringEscapeUtils.unescapeHtml4( 
      StringEscapeUtils.unescapeJava( resultActivity.get(TITLE).getAsString())));
相关问题