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