i'm trying create java api freeling in order use on stanbol. in way, followed instructions given freeling documentation (here :https://github.com/insideout10/stanbol-freeling) without success. seems problem jdk don't know how fix it. i've done :
step a, compile freeling in c++ (no problem here):
a.1) install following packages (with "sudo apt-get install") : - build-essential - zlib1g-dev - libboost1.48-all-dev - automake - autoconf - libtool - libboost-regex-dev - libicu-dev - libboost-filesystem-dev - libboost-program-options-dev - swig
a.2) download latest version of freeling: svn checkout http://devel.cpl.upc.edu/freeling/svn/trunk freeling
a.3) prepare freeling repository: aclocal; libtoolize; autoconf; automake -a
4) build , install freeling: ./configure make sudo make install
step b, compile java api (my problem in step):
1) replace freeling.i located freeling/apis/common/freeling.i freeling.i given @ : [url]https://raw.github.com/ziodave/freeling-brew-formula/master/apis/common/freeling.i[/url]
2) set parameters makefile located freeling/apis/java/makefile
my makefile following :
# change these paths match installation # alternatively, can call 'make' overriding variable values, e.g.: # make freelingdir=/my/freeling/dir swigdir=/my/swig/dir javadir=/my/java/dir freelingdir = /home/saturn/freeling swigdir = /usr/share/swig2.0 javadir = /usr/lib/jvm/jdk1.7.0_25 # may change package name if want package = edu/upc/freeling jpackage = edu.upc.freeling # change compiler, if necessary. gcc=g++ all: freeling_javaapi.cxx libfreeling_javaapi.so .phony: # compile c++ api libfreeling_javaapi.so: freeling_javaapi.cxx $(gcc) -shared -o libfreeling_javaapi.so freeling_javaapi.cxx -lfreeling -l$(freelingdir)/lib -i$(freelingdir)/include -i$(javadir)/include -i$(javadir)/include/linux -fpic $(javadir)/bin/javac $(package)/*.java $(javadir)/bin/jar -cf freeling.jar $(package) # build java jni wrapper classes. freeling_javaapi.cxx: freeling_javaapi.i ../common/freeling.i rm -rf $(package) mkdir -p $(package) swig -java -c++ -package $(jpackage) -outdir $(package) -o freeling_javaapi.cxx -i$(swigdir)/java -i$(swigdir)/std -i$(swigdir) freeling_javaapi.i clean: rm -rf *.jar *.so *.cxx *.class edu java -> $(javadir)/bin/java jar -> $(javadir)/bin/jar 3) run make
and following result :
g++ -shared -o libfreeling_javaapi.so freeling_javaapi.cxx -lfreeling -l/usr/local/share/freeling/lib -i/usr/local/share/freeling/include -i/usr/lib/jvm/jdk1.7.0_25/include -i/usr/lib/jvm/jdk1.7.0_25/include/linux -fpic freeling_javaapi.cxx: in function ‘jlong java_edu_upc_freeling_freelingjni_new_1treeiteratornode_1_1swig_10(jnienv*, jclass)’: freeling_javaapi.cxx:2995:3: error: ‘tree_iterator’ not declared in scope freeling_javaapi.cxx:2995:3: note: suggested alternative: /usr/local/include/freeling/tree.h:47:7: note: ‘freeling::tree_iterator’ freeling_javaapi.cxx:2995:18: error: ‘node’ not declared in scope freeling_javaapi.cxx:2995:18: note: suggested alternative: /usr/local/include/freeling/morfo/language.h:372:14: note: ‘freeling::node’ freeling_javaapi.cxx:2995:23: error: ‘tree’ not declared in scope freeling_javaapi.cxx:2995:23: note: suggested alternative: /usr/local/include/freeling/tree.h:35:26: note: ‘freeling::tree’ freeling_javaapi.cxx:2995:36: error: expected primary-expression before ‘>’ token freeling_javaapi.cxx:2995:39: error: ‘result’ not declared in scope freeling_javaapi.cxx:2999:46: error: expected primary-expression before ‘>’ token freeling_javaapi.cxx:2999:49: error: expected primary-expression before ‘)’ token freeling_javaapi.cxx:2999:50: error: expected ‘;’ before ‘new’ freeling_javaapi.cxx:3000:38: error: expected primary-expression before ‘>’ token freeling_javaapi.cxx:3000:42: error: expected primary-expression before ‘)’ token freeling_javaapi.cxx: in function ‘jlong java_edu_upc_freeling_freelingjni_new_1treeiteratornode_1_1swig_11(jnienv*, jclass, jlong, jobject)’: freeling_javaapi.cxx:3007:3: error: ‘tree’ not declared in scope freeling_javaapi.cxx:3007:3: note: suggested alternative: /usr/local/include/freeling/tree.h:35:26: note: ‘freeling::tree’ freeling_javaapi.cxx:3007:9: error: ‘node’ not declared in scope freeling_javaapi.cxx:3007:9: note: suggested alternative: /usr/local/include/freeling/morfo/language.h:372:14: note: ‘freeling::node’ freeling_javaapi.cxx:3007:17: error: ‘arg1’ not declared in scope freeling_javaapi.cxx:3007:39: error: expected primary-expression before ‘)’ token freeling_javaapi.cxx:3007:41: error: expected ‘;’ before numeric constant freeling_javaapi.cxx:3008:3: error: ‘tree_iterator’ not declared in scope freeling_javaapi.cxx:3008:3: note: suggested alternative: [...] java_edu_upc_freeling_freelingjni_parsetree_1swigupcast(jnienv*, jclass, jlong)’: freeling_javaapi.cxx:12567:7: error: ‘tree’ not declared in scope freeling_javaapi.cxx:12567:7: note: suggested alternative: /usr/local/include/freeling/tree.h:35:26: note: ‘freeling::tree’ freeling_javaapi.cxx:12567:13: error: ‘node’ not declared in scope freeling_javaapi.cxx:12567:13: note: suggested alternative: /usr/local/include/freeling/morfo/language.h:372:14: note: ‘freeling::node’ freeling_javaapi.cxx:12567:22: error: expected primary-expression before ‘)’ token freeling_javaapi.cxx:12567:36: error: ‘parse_tree’ not declared in scope freeling_javaapi.cxx:12567:36: note: suggested alternative: /usr/local/include/freeling/morfo/language.h:423:14: note: ‘freeling::parse_tree’ freeling_javaapi.cxx:12567:49: error: expected primary-expression before ‘)’ token freeling_javaapi.cxx: in function ‘jlong java_edu_upc_freeling_freelingjni_depnode_1swigupcast(jnienv*, jclass, jlong)’: freeling_javaapi.cxx:12575:7: error: ‘node’ not declared in scope freeling_javaapi.cxx:12575:7: note: suggested alternative: /usr/local/include/freeling/morfo/language.h:372:14: note: ‘freeling::node’ freeling_javaapi.cxx:12575:14: error: expected primary-expression before ‘)’ token freeling_javaapi.cxx:12575:28: error: ‘depnode’ not declared in scope freeling_javaapi.cxx:12575:28: note: suggested alternative: /usr/local/include/freeling/morfo/language.h:452:14: note: ‘freeling::depnode’ freeling_javaapi.cxx:12575:38: error: expected primary-expression before ‘)’ token freeling_javaapi.cxx: in function ‘jlong java_edu_upc_freeling_freelingjni_deptree_1swigupcast(jnienv*, jclass, jlong)’: freeling_javaapi.cxx:12583:7: error: ‘tree’ not declared in scope freeling_javaapi.cxx:12583:7: note: suggested alternative: /usr/local/include/freeling/tree.h:35:26: note: ‘freeling::tree’ freeling_javaapi.cxx:12583:13: error: ‘depnode’ not declared in scope freeling_javaapi.cxx:12583:13: note: suggested alternative: /usr/local/include/freeling/morfo/language.h:452:14: note: ‘freeling::depnode’ freeling_javaapi.cxx:12583:25: error: expected primary-expression before ‘)’ token freeling_javaapi.cxx:12583:39: error: ‘dep_tree’ not declared in scope freeling_javaapi.cxx:12583:39: note: suggested alternative: /usr/local/include/freeling/morfo/language.h:478:14: note: ‘freeling::dep_tree’ freeling_javaapi.cxx:12583:50: error: expected primary-expression before ‘)’ token make: *** [libfreeling_javaapi.so] error 1 if understand, makefile call jdk , encounter error.
i tried change jdk older versions (i tried jdk7, jdk6 , sdk6) result same.
for information i'm working in virtual machine ubuntu12.04 x64, tried compile freeling ubuntu12.04 x32 result same.
i added following lines on .bashrc :
java_home=/usr/lib/jvm/jdk1.7.0_25 maven_opts="-xmx2048m -xx:maxpermsize=2048m" java_opts="-xmx2048m -xx:maxpermsize=2048m" ant_opts="-xmx2048m -xx:maxpermsize=2048m" jvm_args="-xmx2048m -xx:maxpermsize=2048m" export maven_opts export java_opts export ant_opts export jvm_args export java_home i think i'm doing wrong don't know what, spent 3 days find solution without success. me ?
thank in advance !
so appears far superior me, noticed set-up environmental variable's path, did check make sure version of java system using default overall?
try using
sudo update-alternatives --config java and making sure right jdk being used.
if solved issue, i'd love hear solution (since posted awhile ago).
Comments
Post a Comment