【问题标题】:PyDev: Jython modules & Java classes in the same projectPyDev:同一项目中的 Jython 模块和 Java 类
【发布时间】:2011-04-05 11:55:08
【问题描述】:

我来自 Java 世界,对 Jython 完全陌生。

是否可以在 Eclipse 中创建一个项目,同时在同一个项目中使用 Jython 和 Java 类?我尝试这样做——编写一个简单的 Java 类并在 Jython 模块中使用它——并且在编码过程中一切都很好。但是当我尝试运行该项目时,我得到:

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

Java 类是: 包 com.bahmanm;

public class Greeter {

 private String msg;

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

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

}

Jython 模块非常简单:

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

如果有任何想法/提示,我将不胜感激。

【问题讨论】:

    标签: java jython pydev


    【解决方案1】:

    将您的 java 代码添加到您的 jython 项目的 Pythonpath 中

    项目

    属性 -> PyDev PYTHONPATH -> 外部库

    【讨论】:

    • 有没有办法使用这些外部库定义的相对路径?我遇到了与 BahmanM 类似的问题,但由于我的 java 和 python 类位于不同的项目中,我不得不一直使用从 root 开始的路径,这不会使其非常便携(即使用 /project/trunk/javaproject/ src 在 /project/trunk/jythonproject/scripts 中可以正常工作,但在作为 /project/branches/mybranch/javaproject/src 检出时会失败。我试图寻找一个定义工作区根的变量,但到目前为止,文档已经难倒我了。
    • 这似乎不起作用。我在包根目录下(即在名为“root”的目录中)有一个简单的 .class 文件。无论我尝试在项目的 PythonPath 中包含什么目录,我都会不断收到“未解决的导入”。当您说“添加您的 java 代码”时……这实际上是指 .jar 而不是目录吗?
    【解决方案2】:

    尝试添加

    导入java

    在顶部

    【讨论】:

    • 据我所知,除非您想从 Jython 脚本中实际调用 java.something,否则这没什么区别。
    【解决方案3】:

    当你运行它时,你将 jars 添加到 jython 的构建路径中:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 2018-06-30
      相关资源
      最近更新 更多