s
http://www.jython.org
Jython 简单入门
http://willzh.iteye.com/blog/307222
1. 用Jython调用Java类库
第一步、创建Java类
写一个简单的Java类,用Point来示例:
- import org.python.core.*;
- public class Point extends PyObject
- {
- private int x;
- private int y;
- public Point()
- {
- x = 0;
- y = 0;
- }
- public Point(int x, int y)
- {
- this.x = x;
- this.y = y;
- }
- public void dump()
- {
- System.out.printf("The position is (%s, %s)\n", x , y);
- }
- }
编译的时候,记得把jython.jar加入类环境中:
- export CLASSPATH=/usr/share/java/jython.jar
- javac Point.java
第二步、简单调用
现在可以编写Jython来调用上面的Java类库了
- #!/usr/bin/env jython
- import Point
- if __name__ == "__main__":
- p = Point(2,3)
- p.dump()
第三步、扩展
- import Point
- class Circle(Point):
- def __init__(self, x, y, r):
- super(Circle, self).__init__(x, y)
- self.r = r;
- def dump(self):
- super(Circle, self).dump()
- print "This radius of Circle is %s" % self.r
- def area(self):
- return self.r**2*3.1415
- if __name__ == "__main__":
- p = Point(2,3)
- p.dump()
- c = Circle(2,10,3) # 但是实际上这里有问题,我不知道怎么回事,还在研究中……哪位指点下
- c.dump()
虽然测试的时候有问题,但是隐约感觉到了Jython的强大,让我们欢呼一下吧
2. 用Java执行Python代码
在安装好的Demo里有个例子,可以拿出来炫炫
- import org.python.core.PyException;
- import org.python.core.PyInteger;
- import org.python.core.PyObject;
- import org.python.util.PythonInterpreter;
- public class SimpleEmbedded {
- public static void main(String[] args) throws PyException {
- PythonInterpreter interp = new PythonInterpreter();
- interp.exec("import sys");
- interp.exec("print sys");
- interp.set("a", new PyInteger(42));
- interp.exec("print a");
- interp.exec("x = 2 + 2");
- PyObject x = interp.get("x");
- System.out.println("x: " + x);
- }
- }
结果如下:
- $ javac SimpleEmbedded.java
- $ java SimpleEmbedded
- sys module
- 42
- x: 4
- $
3. 直接在Jython中使用Java内部的类库
如果你不介意,当然可以在Jython中交互执行Java的类库。下面是一个有点“实用”的例子:
- $ jython
- Jython 2.2.1 on java1.6.0_0
- Type "copyright", "credits" or "license" for more information.
- >>> import sys
- >>> from java.net import URL
- >>> url = URL("http://willzh.iteye.com")
- >>> urlopen = url.openConnection()
- >>> input = urlopen.getInputStream()
- >>> c = input.read()
- >>> while c!=-1:
- sys.stdout.write(chr(c))
- c = input.read()
安装好的Demo里有些例子也可以参考,例如:
- from java.applet import Applet
- import sys
- class HelloWorld(Applet):
- def paint(self, g):
- g.drawString("Hello from Jython %s!" % sys.version, 20, 30)
- if __name__ == '__main__':
- import pawt
- pawt.test(HelloWorld())
直接调用就可以了:
- jython HelloJython.py # 假设上面代码的文件名是HelloJython.py
- java org.python.util.jython HelloJython.py # 也可以这样调用
4. 将Python代码编译为Java类
第一步、创建Python类 Goo.py
- import java.lang.Object
- class Goo(java.lang.Object):
- def __init__(self):
- '''''public Goo()'''
- def dump(self):
- '''''@sig public void dump()'''
- print 'goooooo'
注意函数文档中的字符串,public Goo()表示告诉Java这是构造函数。
第二步、创建Java测试类 GooTest.java
- public class GooTest {
- public static void main(String[] args)
- {
- Goo goo = new Goo();
- goo.dump();
- }
- }
第三步、编译
终端下运行如下命令:
- # jythonc Goo.py
- # javac -cp jpywork:$CLASSPATH GooTest.java # 将jpywork路径加入搜索路径中
- # java -cp jpywork:$CLASSPATH GooTest
- goooooo
运行成功!
5. 后记
很多人说,Python比Java开发速度来的要快,但是Java也有Java不可动摇的强大之处,如此结合,想必Jython的好处和作用显而易见了吧。
end
相关推荐
jython-standalone-2.7.2.jar,java应用调用Python。
在Java中使用JPython,我们需要引入Jython库,它是一个Python的实现,使得Java能够理解并运行Python代码。下面将详细解释如何在Java中引用JPython,并通过一个实例来展示其使用技巧。 首先,为了在Java中使用...
交互式实验-Jython提供了一个交互式解释器,可用于与Java包或运行的Java应用程序交互。这允许程序员使用Jython来实验和调试任何Java系统。 快速应用程序开发——Python程序通常比等效Java程序短2-10倍。这直接转化为...
Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。最有趣的事情是Jython不像CPython或其他任何高级语言,它...
Jython的前身JPython被认证为100%纯Java。Jython对商业和非商业使用都是免费的,并且随源代码一起分发。Jython与Java相辅相成。 要理解Jython,我们首先需要了解Python。Python是一种广泛使用的高级编程语言,以其...
作为 JPython 的后续版本,Jython 已经获得了“100% Pure Java”的认证,并且可以自由地用于商业或非商业用途。Jython 的源代码也对外公开。 #### 二、Jython的特点与优势 1. **无缝集成**:Jython 可以直接调用 ...
Jython - Python的Java语言实现 jython_installer-2.5.2rc2.zip 注意,需要先安装JDK 1, 解压到某处 2, 进入该解压目录, 执行jython.bat
Java 实现调用 Jython 执行 Python 文件的方法 本文主要介绍了 Java 实现调用 Jython 执行 Python 文件的方法,结合实例形式分析了 Java 调用 Jython 执行 Python 文件的常见操作技巧及相关问题解决方法。 Title ...
Jython是Python编程语言的一个实现,它允许Python代码运行在Java平台上,充分利用Java的库和生态系统。在本案例中,我们讨论的是一个使用Jython来处理XML的工具类,该类封装了一些基本的DOM4J操作,提供了对XML文档...
Jython,作为一种Python的实现,是用Java语言编写的,它允许开发者在Java平台上运行Python代码,实现了Python与Java的无缝集成。Jython 2.7.0是其一个重要的版本,提供了许多功能和性能的改进。本文将详细讲解Jython...
Java和Python是当前最为流行的编程语言。Java的平台无关性特点是其他语言无法比拟的,它还具有功能强大的集成开发环境,可以快速创建各种Java应用程序,...Jython是这两种语言的组合,可以预见这种语言将有广阔的前景。
jython-standalone-2.7.0.jar,一个将Python代码转换成Java代码的编译器,能够将自己用Python代码写的类库用在Java程序里,有需要的可以下载.java 调用 python(使用jpython)
2.JPype与Jython(JPython后继者)的区别? 1)运行环境不同:jython运行在jvm上,而JPype的实际运行环境仍然是python runtime,只是在运行期间启动了一个嵌入的jvm; 2)使用者不同:jython是给java程序玩的,JPype...
Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。最有趣的事情是Jython不像CPython或其他任何高级语言,它...
此外,还有基于Java的Jython版本,能够与.NET框架集成。 学习Python的原因众多。首先,Python是面向对象的语言,适合进行对象导向编程。其次,Python是解释型和交互式的,这使得它非常适合用于快速开发和调试。由于...
- Python: Jython (原名 JPython) - Tcl/Tk: Jacl - Perl: 尚无Java实现 - Java本身: BeanShell 在这其中,JavaScript和BeanShell因其接近Java的语法特性而更加受欢迎。接下来我们将详细介绍BeanShell及其在Java...
若需安装额外的Python库,你可以使用Jython的内置`pip`工具。首先,启动Jpthon解释器: ``` jpython ``` 然后,在Jpthon交互式环境中,使用`pip`来安装库,例如: ``` import pip pip.main(['install', 'numpy']) ``...
标题 "jpytnon-NEW -1.0" 暗示这可能是一个与 Python 和 Java 相关的项目,因为 "jpython" 通常指的是 Jython,一个用于运行 Java 平台上的 Python 代码的实现。"NEW -1.0" 可能表示这是该项目的初始版本或者是对...
在【描述】中提到的“jpython编辑器”,可能是指PyCharm对Jython的支持。Jython是一种Python的实现,它可以在Java平台上运行,使得Python程序能够利用Java的类库。PyCharm通过支持Jython,为使用Java平台的开发者...