2016-04-15 101 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