PyDev:尝试在Eclipse中使用Jython调用用户定义的Java方法时的ImportError

时间:2014-09-10 14:23:13

标签: eclipse import pydev jython importerror

我的问题类似于ImportErrorCmd,但我正在使用Windows并尝试在PyDev Eclipse中运行此DAMN。我知道如何让它在cmd上工作但不在Eclipse中工作。

问题

无论如何,所以我在这里试图让这个例子@ ImportErrorSimpleExample 开始工作(那里的解决方案对我没用)。在Eclipse中,我使用以下代码创建了一个Java项目:(link - > C:\ Users \ compski \ workspace \ test \ src \ test \ Greeter.java

package test;

public class Greeter {

private String msg;

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

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

}

在Eclipse中,我使用名为me.py的Jython代码创建了一个PyDev项目:(link - > C:\ Users \ compski \ workspace \ Jython \ Test \ me.py

from test import Greeter

g = Greeter()
g.greet("yours truly")

尝试修复" ImportError"但失败了:

1)我尝试将我的java代码添加到PYTHONPATH(C:\ Users \ compski \ workspace \ test \ src \ test \ Greeter.java和C:\ Users \ compski \ workspace \ test \ src \ test)中,如下所示这里 - > Proposed Solution 1。仍然没有工作

2)我将我的Java项目设置为PyDev项目(右键单击Java项目 - > PyDev - >设置为Pydev项目,但我没有任何" bin文件夹"。然后我也项目引用我的Java项目,包含Greeter.java到我的PyDev项目,就像在这里 - > Proposed solution 2。仍然没有工作

3)来自SO聊天的1个人告诉我,我需要"你需要添加目录,jars,java将从中找到你给它的类c:\ foo \ bar \ bazand import zyxxy.Frobnicator然后它寻找c:\ foo \ bar \ baz \ xyzzy \ Frobnicator"但我不认为我完全明白他的意思,因为这听起来像我在1)所做的那样。

4)......你的回答?

1 个答案:

答案 0 :(得分:1)

好了,现在我们在这里有真实的文件名:给定PYTHONPATH C:\Users\compski\workspace\test\src\testfrom test import Greeter之后,它会尝试在Greeter.class中找到PYTHONPATH C:\Users\compski\workspace\test\src\test\test\Greeter.class的每个条目;它试图找到C:\Users\compski\workspace\test\src\test\Greeter.java\test\Greeter.classPYTHONPATH,但两者都不存在。

相反,在Eclipse中,如果我没记错,你可以向test添加项目,这可能是首选在IDE中进行测试 - 因此只需添加test\Greeter.class在PYTHONPATH项目。另一个选择是添加找到C:\Users\compski\workspace\test\bin的目录;这在Eclipse中应该是src - 默认情况下,Java-natured项目将文件从bin编译到项目中的(隐藏)test文件夹。

最后,如果错误是关于{{1}}中找不到的GreeterClass,请注意test是内置的python模块名称(尽管IIRC Jython没有该名称的模块)。