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

几个月前,尝试在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%\lib文件夹下。
    至此 所需要的文件已经全部准备完毕,接下来需要将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("./lib/plugins/");			
			gate.Gate.setPluginsHome(plugins);
			gate.Gate.init();
			System.out.println("ok");
		} catch (Exception e) 
		{
			e.printStackTrace();
		}

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


作者:laoyaotask 发表于2013-11-8 0:06:49 原文链接
阅读:192 评论:0 查看评论

你可能感兴趣的:(java,信息抽取,GUI)