【发布时间】:2014-02-11 17:34:25
【问题描述】:
按照Using Jython Within Java Applications,我可以集成Java 和Jython(Java 方法可以调用python 脚本)。 python 代码位于py 目录内。 Jython 使用sys.path.append("py") 命令来查找 Jython 脚本。
然后,我尝试将所有文件集成到一个 jar 文件中。
对于前一步,我可以生成一个 jar 文件,并将 py 目录与 jar 文件一起复制,它工作正常。我使用 IntelliJ IDEA 生成 jar 文件。
│ └── py
│ ├── Context$py.class
│ ├── Context.py
│ ├── Host$py.class
│ └── Host.py
├── aggregationPython.jar <-- Generated jar file
下一步,我尝试将 py 目录复制到 jar 文件中,为此我也使用了 IntelliJ。
我检查了jar文件在jar文件中有py目录。您会看到 py 目录位于 jar 文件的根目录。
但是,当我执行 jar 文件时,我收到一条错误消息,提示缺少 jython 模块。
> java -jar aggregationPython.jar
Exception in thread "main" ImportError: No module named Host
可能出了什么问题?我假设 py 目录可以存储在一个 jar 文件中,就像在 jar 文件之外找到它一样。这个假设有什么问题?
【问题讨论】:
-
尝试将python文件放到jar文件的顶层目录下看看是否可行。
-
@daniel kullmann:它已经在顶层目录中;问题中显示的是解压的 jar 文件。
-
我的意思是没有 py 目录,例如Host.py 直接在 zip 文件的顶层目录中
标签: java search jar intellij-idea jython