java GUI调用信息抽取工具Gate的方法

来源:互联网 发布:acca考试资料 知乎 编辑:程序博客网 时间:2024/06/09 19:48

几个月前,尝试在JavaWeb项目中调用Gate API(关于Gate点这里了解更多),在那里其安装配置很简单,根据官方手册很快可以搞定。由于项目需求的变化,现在要把项目改为桌面版,所以又要考虑在Java GUI中调用 Gate API的问题。根据官方手册完全行不通,各种报错,谷歌上可参考的内容也极少,我甚至还给开发人员发邮件询问,也没得到回复,相当吭爹,浪费老汉整整24小时的时间! 后来根据前期工作的提示,自己终于摸索出来如何调用了!赶紧记下来。

前提:

  1. 电脑上应该已经安装了Gate程序,比如我的是在D:\Program Files\GATE_Developer_7.1\ ,为方便后续表述,将此记为%gate_home%。
  2. 已经创建了Java GUI项目。我是用MyEclipse10开发,项目根路径为E:\metroJava1105\metroIE1105\ ,为方便后续表述,将此记为%java_project_home%。

具体过程:

  1. 在%gate_home%\bin中找到gate.jar,将其复制到%java_project_home%\lib文件夹下。
  2. 在%gate_home%\中找到gate.xml,将其复制到%java_project_home%\,即项目根目录下
  3. 在%gate_home%\中选择lib文件夹,将其复制到%java_project_home%\lib文件夹下。
  4. 在%gate_home%\中选择plugins文件夹,将其复制到%java_project_home%\,即项目根目录下。(这里之前写错了,非常抱歉。)
    至此 所需要的文件已经全部准备完毕,接下来需要将jar文件添加到项目中即可。
  5. 在MyEclipse中,右击项目名称,build path--> config build path,在Libraries选项卡中点击add external jars,选择第1步中的gate.jar,将其添加到项目中;先不要着急关闭java build path 窗口,继续点击add external jars,将第3步中所有jar文件同时选中添加到项目中。

这时,如果你在java中写一行代码:

try        {                  gate.Gate.init();            System.out.println("ok");        }catch (Exception e)        {                      e.printStackTrace();        }

运行后会抛出如下异常:

gate.util.GateRuntimeException: Could not infer installed plug-ins home!Please set it manually using the -Dgate.plugins.home option in your start-up script.    at gate.Gate.initLocalPaths(Gate.java:316)    at gate.Gate.init(Gate.java:163)    at test.test.jButton1ActionPerformed(test.java:75)
基本意思是找不到关联的plugins路径,也就是找不到插件在哪里。实际上,所有的插件我们在第4步中已经复制到项目中,但是我们并没有告诉项目在运行时去哪里找这些插件。而gate在初始化时就要知道这一结果,所以就报错。

我的解决办法是:在程序中,在gate初始化之前就以文件的形式加载这些插件,完善后的代码为:

try {File plugins=new File("./plugins/");gate.Gate.setPluginsHome(plugins);gate.Gate.init();System.out.println("ok");} catch (Exception e) {e.printStackTrace();}

这样,我期盼已久的“ok”终于出现了!


原创粉丝点击