Reg Jython Python for Java

时间:2012-05-23 07:16:34

标签: jython jython-2.5

我被分配了一个任务,将java独立应用程序转换为python web应用程序。用python语言编写整个模块需要花费大量的时间和精力。因此我被建议快速完成python包装并获取代码工作(jython.org)(Jython是JAVA的Python包装)。任何人都可以指导我如何开始,因为我不熟悉Python和Jython吗?

1 个答案:

答案 0 :(得分:0)

为了帮助您入门:

如果你熟悉Java,那么你应该能够进入Jython提示没问题。只需像执行任何其他.jar一样执行它。如果您没有下载独立的jython.jar,请确保在类路径中包含Jython库。

假设您的Java应用程序包名为com.stackoverflow.q10715162,并在.jar中编译为C:\jars\your_app.jar

然后,您可以在Jython中访问其类。在Jython提示符下:

>>> import sys
>>> sys.path
['', 'C:\\jython\\Lib', 'C:\\jython\\jython.jar\\Lib', '__classpath__', 
'__pyclasspath__']

这里,sys.path是Jython发行版寻找编译模块的目录列表。通过将已编译的Java应用程序添加到列表中,它将变得可访问(在http://www.jython.org/jythonbook/en/1.0/ModulesPackages.html处可以获得更深入的信息):

>>> sys.path.append('C:\\jars\\your_app.jar')
>>> import com.stackoverflow.q10715162 as yourapp
*sys-package-mgr*: processing new jar, 'C:\\jars\\your_app.jar'
>>> dir(yourapp)
['Class1', 'Class2', 'Class3', ...]

通过使用dir(yourapp),您可以看到在Java应用程序中定义的类。 dir(yourapp.Class1)将列出该类中的所有方法,函数等。

您可能想要阅读至少Jython Book的前几页,以熟悉新语法。我发现它比Java简单得多。

为了制作一个Jython网络应用程序,我听说cgi是迄今为止以最少开销开始的紧急方式:

#!/usr/bin/python

print("Content-Type: text/plain\n\n")

print("Hello, World!\n")

本教程似乎很有帮助:http://www.cs.virginia.edu/~lab2q/lesson_1/。虽然它适用于Python,但几乎所有它都适用于Jython。

当然,如果cgi不适合您或您的项目,还有许多其他Python / Jython Web服务选项。我使用过web2py并非常喜欢它。