庖丁解牛 dic home should not be a file, but a directory!

来源:互联网 发布:绿盟数据库审计 编辑:程序博客网 时间:2024/05/16 18:44

最近一个项目,用到了paoding分词器。
在开发阶段我将词库放到了src目录,配置文件使用了classpath:dic,目的是为了增加可移植性。

 

发现问题:在启动服务器的时候抛出 net.paoding.analysis.exception.PaodingAnalysisException: dic home should not be a file, but a directory!


分析问题:这是因为PaodingMaker.getFile()方法中采用了老版本的java.net.URL.getFile(),不能够识别中文或者空格,只有采用URL.toURI().getPath()才能识别汉字与空格。

 

解决问题:需要修改一下Paoding中的代码了。找到PaodingMaker.java的setDicHomeProperties方法,修改File dicHomeFile = getFile(dicHome);为

  1. File dicHomeFile2 = getFile(dicHome);   
  2.         String path="";   
  3.         try {   
  4.             path = URLDecoder.decode(dicHomeFile2.getPath(),"UTF-8");   
  5.         } catch (UnsupportedEncodingException e) {   
  6.             e.printStackTrace();   
  7.         }   
  8.     File dicHomeFile = new File(path);  
原创粉丝点击