2016-04-15 47 views
-2

我正在嘗試jython,並且很早就用第10章中的示例卡住了http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html數學導入在java庫中工作。但我無法讓自定義課程Beach正常工作。Jython,未解決的導入-java class

我看到一個相同的帖子Jython won't import user-defined class; ImportError: No module named ****** 但是我不明白接受的答案的方法。

所以我希望有一點澄清。

以下是我的項目結構。

enter image description here

import Beach 

b = Beach("Cocoa Beach","Cocoa Beach") 
print (b.getName(Beach.getName())) 

進口海灘:未解決進口:海灘

編輯:得到它具有以下工作:

import sys 
sys.path.append('C:\Users\Rasmus\Desktop') 

import Beach 

beach = Beach("Cocoa Beach","Cocoa Beach") 
beach.getName() 
print(beach.getName()) 

然而PyDev的日食仍然標記導入海灘作爲一個懸而未決的進口。

海灘類

public class Beach { 

    private String name; 
    private String city; 


    public Beach(String name, String city){ 
     this.name = name; 
     this.city = city; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getCity() { 
     return city; 
    } 

    public void setCity(String city) { 
     this.city = city; 
    } 

} 
+1

我沒有看到您的目錄中的類文件。你運行「javac src/Beach.java」嗎?只有這樣做後,你會得到一個類文件。將每種語言的文件保存在單獨的目錄中是一種很好的做法。將.java文件移動到Java目錄併爲其創建Java項目。把你的python文件放在一個單獨的目錄中。 – randominstanceOfLivingThing

+0

我做了兩個獨立的目錄。有什麼辦法讓python自己創建java.class文件,這樣我就可以輕鬆編輯我的java類。 – PushALU

回答

2

您必須Jython的類路徑編譯的類。您只能導入已編譯的類文件。

正如你在你的問題有鏈接文件檔案化管理:

正如我們在第8章已經瞭解到,有一件事你需要做的是確保你希望使用的Java類中駐留你的CLASSPATH。在上面的例子中,我創建了一個包含Beach類的JAR文件,然後將該JAR放在CLASSPATH上。

編譯通過使用作爲JDK一部分的javac命令完成。使用JDK的命令jar命令部分完成創建jar文件。

將不同文件的文件放在同一目錄下不是一個好習慣。您應該爲您的.java文件和Jython文件創建一個Java項目放在一個單獨的目錄中。

看看using-a-jar-or-java-project-in-your-jython-app

+0

我不知道如何繼續。 – PushALU

+0

我嘗試將我的類Beach導出爲jar文件,並將其粘貼到jyt項目的src文件夾中。但那並沒有做到。不是src的類路徑? – PushALU

+0

Java源文件需要使用Javac進行編譯,然後您將得到一個.class文件。 – randominstanceOfLivingThing