swing - 为什么 Jython 拒绝找到我的 Java 包?

标签 swing jython

我知道这很愚蠢,但出于某种原因,Jython 拒绝找到 javax.swing。我正在使用 Java 1.6.0_11。这是我的启动脚本:

@echo off

"%JAVA_HOME%\bin\java" -Xmx1024M -classpath ".;c:\Projects\Jython2.5.1\jython.jar" org.python.util.jython 

我的输出看起来像:
Jython 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54)
[Java HotSpot(TM) Client VM (Sun Microsystems Inc.)] on java1.6.0_10
Type "help", "copyright", "credits" or "license" for more information.
>>> import javax.swing
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named swing
>>> import javax
>>> dir(javax)
['__name__']
>>>

最佳答案

很可能 Jython 没有扫描您的包。在启动时,Jython 尝试通过其路径上的 jar 和类文件并扫描 Java 包。这是必要的,因为无法通过反射查找 Java 包。可以故意关闭包扫描,或者您可能缺乏写入权限,因为它想将缓存信息写出,请参阅 http://wiki.python.org/jython/PackageScanning更多。导入 Java 类的最佳方法是逐个类地显式导入,如下所示:

from javax.swing import JFrame

这种方法应该始终有效,即使包扫描关闭或以其他方式无法工作,并且是推荐的方法(尽管它可能有点乏味)。如果您确实想导入包(或者如果您想要执行“from javax.swing import *”,这也取决于包扫描 - 但不鼓励),您需要弄清楚为什么您的包扫描不起作用。

关于swing - 为什么 Jython 拒绝找到我的 Java 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1681849/

相关文章:

java - JFormattedTextField 的 setValue 不显示在 GUI 上

java - 确认 JTextField 是否包含值 0.5-1?

Java Swing/AWT - 使用上下文菜单绘制对象

java - 从 Jython 控制标准输出/标准错误

python - sikuli python 脚本上的 .sendto() 方法在 Windows 上不起作用

java - Netbeans 图形设计器中自定义图形组件的自动更新

java - JTextArea 不显示文本

jython - 如何在 Jython 中使用 Java 8 lambda

ODI 中 Java Beanshell 的 Jython 变量

Java 跳过代码行