2010-08-29 6 views
8

Je viens d'un monde Java et je suis complètement nouveau à Jython.PyDev: Modules Jython et classes Java dans le même projet

Est-il possible de créer un projet dans Eclipse avec des classes Jython et Java sur le même projet? J'ai essayé de le faire - en écrivant une classe Java simple et en l'utilisant dans le module Jython - et tout s'est bien passé pendant le codage. Mais lorsque je tente de lancer le projet, je reçois:

Traceback (most recent call last): 
File "/home/bahman/Work/Jython/TestJython/src/com/bahmanm/Main.py", line 1, in <module> 
from com.bahmanm import Greeter 
ImportError: cannot import name Greeter 

La classe Java est: package com.bahmanm;

public class Greeter { 

private String msg; 

public Greeter() { 
    msg = "Hello, "; 
} 

public void greet(String name) { 
    System.out.println(msg + name); 
} 

} 

Et le module Jython est assez simple:

from com.bahmanm import Greeter 
g = Greeter() 
g.greet("Bahman") 

J'apprécierais des idées/conseils.

Répondre

6

Ajouter votre code java à l'PythonPath de votre Jython-projet

projet

Propriétés -> PyDev PYTHONPATH -> Bibliothèques externes

+1

Est-il possible d'utiliser des chemins relatifs avec ces définitions de bibliothèques externes? J'ai eu un problème similaire à BahmanM, mais comme mes classes java et python étaient dans des projets différents, j'ai dû utiliser un chemin depuis root, ce qui ne le rend pas très portable (ie en utilisant/project/trunk/javaproject/src fonctionnerait correctement à partir de/project/trunk/jythonproject/scripts, mais il échouerait lors de la sortie sous/project/branches/mybranch/javaproject/src). J'ai essayé de chercher une variable qui définit la racine de l'espace de travail, mais jusqu'à présent, la documentation m'a bloqué. –

+0

Cela ne semble pas fonctionner. J'ai un simple fichier .class sous une racine de paquet (c'est-à-dire dans un répertoire appelé "root"). Quel que soit le répertoire que j'essaie d'inclure dans mon PythonPath pour le projet, je continue d'obtenir une "importation non résolue". Quand vous dites "ajouter votre code Java" ... cela signifie-t-il en fait un .jar plutôt qu'un répertoire? –

0

essayer d'ajouter

import java

en haut

+0

Pour autant que je peux voir, cela ne change rien à moins que vous voulez appeler réellement java.something à partir du script Jython. –

-1

quand u exécuter, u ajouter des pots au chemin de construction de Jython avec:

Jython -Dpython.path = [nomjar] [pyfilename]

Questions connexes