【问题标题】:Real-world Jython applications真实世界的 Jython 应用程序
【发布时间】:2010-08-29 07:01:59
【问题描述】:

我最近开始学习 Python。还没有涉足编码。 在我的一个学习课程中,我遇到了 Jython 这个词。

我用谷歌搜索并得到了一些信息。

我想知道是否有人使用 Jython 实现了任何实际程序。

【问题讨论】:

  • +1 因为我看到你的代表是int(1000*2/3),我正试图拯救你的灵魂 ;-)

标签: python jython


【解决方案1】:

大多数时候,Jython 并不直接用于编写完整的阅读世界程序,但许多程序实际上嵌入了 Jython 以将其用作脚本语言。

Jython 官方网站提供了一个项目列表,其中一些是用 Jython 编写的,另一些是使用 Jython 编写脚本的: http://wiki.python.org/jython/JythonUsers

【讨论】:

  • 谢谢。只是想知道您是否已经实施过?
  • 我没有自己编写 Jython 程序,但我有机会与一些使用 Jython 作为基于 Java 的应用程序中的脚本语言的人交谈。
  • 它可能主要用于在 Java 环境中编写脚本,但我认为没有太多理由不出于任何目的使用 Jython 而不是 Java。显然这取决于项目,但我想说这主要是个人喜好。
【解决方案2】:

我现在正在用 Jython 编写一个完整的应用程序,我强烈推荐它。拥有所有 Java 库供您使用非常方便,而且 Python 语法和语言特性实际上使使用其中的一些库比在 Java 中更容易(我在这里主要谈论的是 Swing)。

查看the chapter on GUI Applications from the Jython book。它做了很多比较,比如“看看所有这些 Java 代码,现在看看它减少到一半长度的 Python 代码!”。

我发现的唯一警告是:

  • Jython 开发往往稍微落后于 Python,如果您在 Python 中找到一种很酷的方法,但发现当前 Jython 版本不支持它,这可能会很烦人。
  • 有时您可能会遇到 Python 和 Java 之间的接口问题(我有几个未解决的问题 herehere,尽管这类事情总是有解决方法)。
  • 分发并不像想象的那么简单,尽管一旦你弄清楚如何去做,它就会相当轻松。我建议遵循here 的方法。它主要包括:
    1. 分解 jython.jar 并将您自己的模块添加到其中。
    2. 编写和编译一个小型 Java 类,用于创建 Python 解释器并加载您的 Python 模块。
    3. 创建一个包含 jython.jar 模块、您自己的 Python 模块和 Java 类的可执行 .jar 文件。

【讨论】:

  • 只是出于好奇:您对 Jython 的内存需求做了什么特别的事情(即如何减少)?对我来说,使用 Swing 的超级简单的“Hello World”应用程序(请参阅 GUI 应用程序链接)需要 > 80 兆字节......我觉得这非常极端。
  • @FriendFX 老实说,我从来没有检查过正在使用的内存,所以我不能真正发表评论。您可能会发现,这 80MB 中的绝大多数只是 Java/Jython 的开销,并且不会随着您的程序变大而增加太多。根据您的目标机器/平台/用户,这可能不是问题。
【解决方案3】:

Jython 非常适合依赖注入。

你知道你必须给你的程序那些讨厌的变量,比如

  • 文件系统路径
  • 服务器名称
  • 端口

Jython 提供了一种非常好的方法,通过将这些变量放入脚本中来注入这些变量。它同样适用于注入 java 依赖项。

【讨论】:

  • 有趣。您能否详细说明通过 Jython 进行的依赖注入?
【解决方案4】:

WebSphere 和 WebLogic 将其用作管理目的的默认脚本引擎。

许多其他 Oracle 产品将它作为其“oracle_commons”模块(Oracle Universal Installer、Oracle HTTP Server 等)的一部分提供。不过,它主要部署的是 2.2 版,有点旧且笨重。

【讨论】:

    【解决方案5】:

    http://wiki.python.org/jython/JythonUsers 有一个使用 jython 的应用程序列表

    【讨论】:

    • 上述用户已经回答了同样的问题。无论如何,感谢您的努力。
    猜你喜欢
    • 2011-07-03
    • 2011-01-01
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 2011-04-14
    相关资源
    最近更新 更多