The last entry on your classpath should be /home/jeren/Desktop/Project/TweetParse/Parse_Tweets/stm/build/classes
and you need to create class like A = JClass('stm.Stm')
. Perhaps take a look how classes are arranged into packages. For example http://docs.oracle.com/javase/tutorial/java/package/packages.html
how to find classpath in project written in netbeans to use in jpype
Vra
I have a public class Stm:
package stm;
import zemberek.morphology.apps.TurkishMorphParser;
import zemberek.morphology.parser.MorphParse;
import java.io.IOException;
import java.util.List;
public class Stm {
TurkishMorphParser parser;
public Stm(TurkishMorphParser parser) {
this.parser = parser;
}
public void do_stm(String word) {
System.out.println("Word = " + word);
List<MorphParse> parses = parser.parse(word);
for (MorphParse parse : parses) {
System.out.println(parse.getStems());
}
}
public static void main(String[] args) throws IOException {
TurkishMorphParser parser = TurkishMorphParser.createWithDefaults();
new Stm(parser).do_stm("ankaraya");
}
}
and aa.py as below :
import jpype
from jpype import *
import os
classpath = "/home/jeren/Desktop/Project/TweetParse/Parse_Tweets/stm/jars/antlr-4.2.2-complete.jar:/home/jeren/Desktop/Project/TweetParse/Parse_Tweets/stm/jars/guava-15.0.jar:/home/jeren/Desktop/Project/TweetParse/Parse_Tweets/stm/jars/zemberek-core-0.9.0.jar:/home/jeren/Desktop/Project/TweetParse/Parse_Tweets/stm/jars/zemberek-lm-0.9.0.jar:/home/jeren/Desktop/Project/TweetParse/Parse_Tweets/stm/jars/zemberek-morphology-0.9.0.jar:/home/jeren/Desktop/Project/TweetParse/Parse_Tweets/stm/jars/zemberek-tokenization-0.9.0-2.jar:/home/jeren/Desktop/Project/TweetParse/Parse_Tweets/stm/build/classes/stm/"
startJVM(getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % classpath)
A = JClass('Stm')
a = A()
jpype.shutdownJVM()
running aa.py , I get this error:
Traceback (most recent call last):
File "aa.py", line 15, in <module>
A = JClass('Stm')
File "/usr/lib/python2.7/dist-packages/jpype/_jclass.py", line 54, in JClass
raise _RUNTIMEEXCEPTION.PYEXC("Class %s not found" % name)
jpype._jexception.ExceptionPyRaisable: java.lang.Exception: Class Stm not found
I can call normal class in python but have problem in the project I have written in netbeans with imported some jar files. jar files are located
/home/jeren/Desktop/Project/TweetParse/Parse_Tweets/stm/jars/
I know problem is with classpath ! considering the jar files I used, how should I fill classpath part ????????????
Oplossing
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow