2010-08-29 8 views
8

Pochodzę ze świata Java i jestem całkowicie nowy w Jython.PyDev: Moduły Jython i klasy Java w tym samym projekcie

Czy można utworzyć projekt w środowisku Eclipse z klasami Jython i Java w tym samym projekcie? Próbowałem to zrobić, pisząc prostą klasę Java i używając jej w module Jython - i wszystko poszło dobrze podczas kodowania. Ale gdy próbuję uruchomić projekt pojawia się:

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 

Klasa Java jest: pakiet com.bahmanm;

public class Greeter { 

private String msg; 

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

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

} 

I moduł Jython jest dość prosta:

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

będę wdzięczny za wszelkie pomysły/podpowiedzi.

Odpowiedz

6

Dodaj java-kod do PYTHONPATH swojej jython projekcie

projektowe

Properties -> PyDev PYTHONPATH -> Zewnętrzne biblioteki

+1

Czy istnieje sposób użycia względnych ścieżek z tymi definicjami bibliotek zewnętrznych? Miałem podobny problem z BahmanM, ale ponieważ moje klasy Javy i Pythona były w różnych projektach, musiałem użyć ścieżki od samego root'a, co nie czyni go bardzo przenośnym (tj. Za pomocą/project/trunk/javaproject/src działałby dobrze z/project/trunk/jythonproject/scripts, ale kończyłoby się to niepowodzeniem po sprawdzeniu jako/project/branches/mybranch/javaproject/src). Próbowałem już szukać zmiennej, która definiuje katalog główny obszaru roboczego, ale jak dotąd dokumentacja mnie zaskoczyła. –

+0

To wydaje się nie działać. Mam prosty plik .class w katalogu głównym pakietu (tj. W katalogu o nazwie "root"). Niezależnie od katalogu, który staram się dołączyć do mojej PythonPath dla projektu, otrzymuję "nierozstrzygnięty import". Kiedy mówisz "dodaj swój kod Javy" ... czy to w rzeczywistości oznacza .jar zamiast katalogu? –

0

spróbuj dodać

import java

na najwyższym

+0

O ile widzę, to nie ma znaczenia, chyba że chcę faktycznie wywołać java.something ze skryptu Jython. –

-1

gdy u uruchomić go, u dodać słoików do ścieżki budowania jython jest z:

jython -Dpython.path = [jarname] [pyfilename]

Powiązane problemy