2012-01-27 51 views
2

我製作了一個調用其他java類的java類,然後將其打印到屏幕上。我正在嘗試構建一個調用我的java類的python接口,運行其中的一個方法,並終止。我無法訪問我的方法。我已經使用了「import directory.directory2.myClass.java(和.jar和.class)這一行,我從原始代碼和.class文件中創建了.jar文件,這些都沒有工作。 sys.path.append指向java文件所在的目錄我是否需要將我的java類文件轉換爲python模塊?如果有,我該怎麼做?如何導入我在jython中創建的java類並調用方法

回答

2

Jython支持加載Java類,好像他們是Python模塊,它會搜索sys.path目錄爲.class文件。

首先,確保你的Java類已經編譯了javac

然後,執行sys.path.append(d),其中d是包含該軟件包的目錄。因此,如果您的班級在頂部顯示package foo.bar;,並且位於mydir/foo/bar/myclass.java,那麼您必須在sys.path不是mydir的其中一個子目錄)中有mydir

最後,通過類似from foo.bar import myclass的方式導入課程。 Python和Java之間的名稱必須匹配!你將會從「[package] import [class]」中執行「。

+0

它仍然在說沒有模塊名爲directory.directory2,我確定路徑是設置爲我有我的jython文件的目錄,我甚至嘗試了使用和不使用sys.path.append。它不會找到目錄 – freedom1342 2012-01-28 21:05:24

+0

正如我所說的,您必須將'sys.path'設置爲包含**保存**'目錄'的文件夾。您還必須確保'myClass'位於'package directory.directory2'中。 – Borealid 2012-01-28 21:07:17

+0

感謝您的幫助 – freedom1342 2012-01-30 19:30:31

0

您應該這樣做:

from directory.directory2 import myClass 
myObject = myClass() 
myObject.myMethod() 
+0

是.java文件.class文件或.py文件 – freedom1342 2012-01-27 21:57:34

+0

我也遇到了一個錯誤,說「從directory.directory2導入myClass」ImportError:沒有名爲directory.directory2的模塊 – freedom1342 2012-01-27 22:09:56

+0

這就是您應該使用的.py文件在CLASSPATH – 2012-01-28 13:26:46

相關問題