J'ai une classe publique Stm:comment trouver classpath dans le projet écrit en NetBeans à utiliser dans jpype
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");
}
}
et aa.py comme ci-dessous:
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()
aa.py en cours d'exécution, je obtenir cette erreur:
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
je peux appeler la classe normale en python, mais avoir des problèmes dans le projet, je l'ai écrit dans NetBeans avec certains fichiers importés jar. fichiers jar sont situés
/home/jeren/Desktop/Project/TweetParse/Parse_Tweets/stm/jars/
Je sais que le problème est avec classpath! compte tenu des fichiers jar que j'ai utilisé, comment dois-je remplir la partie classpath ????????????
merci pour la réponse, mais j'ai encore la même erreur: Traceback (le plus récent appel dernier): Fichier "aa.py", ligne 14, en A = JClass ('stm.Stm') Fichier "/usr/lib/python2.7/dist-packages/jpype/_jclass.py", ligne 54, dans JClass relance _RUNTIMEEXCEPTION.PYEXC ("Classe% s introuvable"% name) jpype._jexception.ExceptionPyRaisable: java.lang.Exception: Classe stm.Stm introuvable –
Jeren
Assurez-vous que la classe est construite ('/ home/jeren/Desktop/Projet/TweetParse/Parse_Tweets/stm/build/classes/stm/Stm.class' existe). Vérifiez la version Java à l'aide de votre bibliothèque Python et de votre compilateur Java. Aussi, lorsque vous résolvez cela, vous devrez ajouter le constructeur par défaut (no-arg) pour instancier 'a = A()'. – Radim
Stm.class existe! comment puis-je utiliser le constructeur avec des arguments ??? est-ce possible de toute façon ??????? – Jeren