【发布时间】:2011-11-15 19:23:17
【问题描述】:
我已经搜索了一段时间,似乎无法找到这个问题的答案。是否可以将用户定义的 .class 文件直接导入 Jython 而不是 .jar。我想使用 Jython 来测试我用 java 编写的文件(如果这改变了任何东西,我正在使用 Netbeans)。我打算最终将 Jython 用作脚本语言(它将成为游戏)和主循环代码。但是现在,我什至无法让 Jython 导入我的 .class 文件,而且我真的不希望每次我想测试代码或尝试某些东西时都必须将所有内容都设为 .jar...
我已经将包含所有 .class 文件的文件夹添加到 sys.path 和 classpath 中。当我尝试导入包时('x86Wars'...'因为它基于适用于 Gameboy Advance 的 Advance Wars...)它给了我:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named x86Wars
但是当我尝试直接导入 .class 文件名时(我实际上已经添加了包含 .java 源的文件夹和 .class 一个),它给了我:
java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: FullScreenDisplay (wrong name: x86Wars/FullScreenDisplay)
任何帮助将不胜感激!
【问题讨论】:
-
确定文件夹正确地模仿了包名吗?从您添加到 python 路径(和类路径)的根目录开始,您必须为 com.game.x86wars 的每个虚线名称创建一个文件夹,您应该拥有
/com/game/x86wars/class.class -
实际上,效果很好!包名称只是 x86Wars(目前),我已将 C:/something/something/x86Wars 添加到 CLASSPATH 中,当我退出一个(即 C:/something/something)时,它起作用了! (实际上,起初它并没有,因为显然 Java 不喜欢 CLASSPATH 以 '/' 结尾)。如果您想正式回答这个问题,我会选择它作为最佳答案,以便其他人可以看到它已得到回答。
-
我添加了我之前的评论作为答案。
标签: java import jython importerror