首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ABCL调用freeling Java API

从ABCL调用freeling Java API
EN

Stack Overflow用户
提问于 2013-07-10 03:49:09
回答 2查看 1K关注 0票数 1

我正在尝试从ABCL (http://common-lisp.net/project/armedbear/)调用Freeling (http://nlp.lsi.upc.edu/freeling/) Java API (http://devel.cpl.upc.edu/freeling/svn/trunk/APIs/java/)。我遵循Freeling Java API自述文件中的所有过程,使用swig编译API。在那之后,我可以运行示例代码了。

代码语言:javascript
复制
java -Djava.library.path=. -cp freeling.jar:. Analyzer < teste.text > teste.out

在此Analyzer.java中,相关行为:

代码语言:javascript
复制
...
import edu.upc.freeling.*;
...
System.loadLibrary( "freeling_javaAPI" );
...
MacoOptions op = new MacoOptions( LANG );

在ABCL中,我尝试过:

代码语言:javascript
复制
(add-to-classpath "/Users/arademaker/Downloads/myfreeling/APIs/java/freeling.jar")
(jstatic "load" "java.lang.System" "/Users/arademaker/Downloads/myfreeling/APIs/java/libfreeling_javaAPI.so")
(jnew "edu.upc.freeling.MacoOptions" "en")

但是我得到了一个错误:

代码语言:javascript
复制
Java exception 'java.lang.UnsatisfiedLinkError: edu.upc.freeling.freelingJNI.new_MacoOptions(Ljava/lang/String;)J'.
   [Condition of type JAVA-EXCEPTION]

有谁知道吗?用Java的System.load有什么特别的问题吗?

EN

回答 2

Stack Overflow用户

发布于 2013-10-06 04:26:49

在调用ABCL之后,从Lisp中使用JAVA:ADD- to -CLASSPATH被认为是更好的形式。

代码语言:javascript
复制
 (java:add-to-classpath (probe-file #p"freeling.jar"))

应该提供更多信息。ABCL对CL:PATHNAME有一个扩展的概念

票数 1
EN

Stack Overflow用户

发布于 2013-07-11 02:32:32

根据Alessio Stalla在http://thread.gmane.org/gmane.lisp.armedbear.devel/2923上的建议,我能够解决我的问题。解决方案是加载ABCL,而不是使用-jar参数:

代码语言:javascript
复制
java -jar abcl.jar

但根据命令行的建议:

代码语言:javascript
复制
java -Djava.library.path=. -cp freeling.jar:abcl.jar org.armedbear.lisp.Main

看起来-jar让java忽略了-cp参数:

http://docs.oracle.com/javase/1.4.2/docs/tooldocs/linux/java.html

然而,这部分解释了其中的奥秘,因为我也尝试过:

代码语言:javascript
复制
(add-to-classpath "freeling.jar")

代码语言:javascript
复制
(jstatic "load" "java.lang.System" ".../libfreeling_javaAPI.so")
(jnew "edu.upc.freeling.MacoOptions" "en")

因此,除了忽略"-cp“参数之外,使用"-jar”还有其他后果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17556912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档