Jython使用

一、 Jython 简介

        Jython 是一种完整的语言,而不是一个 Java 翻译器或仅仅是一个 Python 编译器,它是一个 Python 语言在 Java 中的完全实现。 Jython 也有很多从 CPython 中继承的模块库。最有趣的事情是 Jython 不像 CPython 或其他任何高级语言,它提供了对其实现语言的一切存取。所以 Jython 不仅给你提供了 Python 的库,同时也提供了所有的 Java 类。这使其有一个巨大的资源库。
        Jython,最初叫做 JPython,就是: Python 语言的 Java 实现。
        Jython 和 Python 强调了代码的简明性、方便性和易读性。 Jython 使用缩排来对代码块定界以避免使用在 Java 中的大括号。 Jython 用新的一行来表示一个新的语句的开始,并有几个重要的区别,如允许在每个语句后省略分号。Jython没有像在Java中的 public、private和 protected 存取符,这样就给程序员提供了快速开发所需要的灵活性,并将注意力集中在程序逻辑上。正像前面所提到的, Jython 不用明显的静态的类型定义,故程序员不需要从程序逻辑转移到类型定义上来。
        Jython 由于继承了 Java 和 Python 二者的特性而显得很独特。

二、 Jython 安装与使用

1.Jython 安装

首先需要安装好 JDK,并配置好环境变量。

Jython官网 下载 Jython,这里选择的 Jython 2.5.4rc1,下载 Jython 2.5.4rc1 – Installer, 在 windows 系统下双击文件进行安装。

(如果下载下来的文件名是 remotecontext 没有拓展名,在后面自己加一个 .jar 再双击安装即可。)

具体步骤截图:


2. 在 eclipse 中升级 jydt 并配置 jython

打开 eclipse,点 help--Install New Software--Add 输入

name: JyDT Update Site

Location:http://www.redrobinsoftware.net/jydt/updatesite

结果如图:

升级完成后重新启动 eclipse,
点击 Window--Preferences--Jython 配置路径:
classpath:即 jython 安装好时文件夹中 jython.jar 文件
installation:即 Jython 安装目录,添加 Jython home 后系统会自动补全后面两个,如果没有补全照图补全即可:


3.Eclipse 中使用 Jython

把 jython 安装目录加入到系统环境变量(包含 bin 目录和 Lib 目录),在 java 工程中加入 jython 安装目录下的 jython.jar 即可在 java 中使用 jython 了:


右键 jython.Jar,“Build Path”-->“Add to Build Path”后方可使用。

4.验证

创建新 jython Project
创建新 jython 文件
如图:

测试一下:

三、 Jython 一个简单例子

package py;

import org.python.util.PythonInterpreter;
import org.python.core.*;

public class PyTest {
    public static void main(String[] args) {
        //运行test.py脚本
        PythonInterpreter interp1 = new PythonInterpreter();
        interp1.execfile("test.py");
        //运行python命令
        PythonInterpreter interp = new PythonInterpreter();
        System.out.println("Hello, brave new world");
        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);
        System.out.println("Goodbye, cruel world");
    }
}

测试 Python 脚本, test.py:

print "This is a Python exec"
from java.util import Random
rng = Random()
#This is a comment in Jythonprint "Flipping a coin..."
if rng.nextBoolean():
    print "Came up heads"
else:
    print "Came up tails"

OVER~~

 


 

  • 11
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Jython是一种用于Java平台的Python实现,而PyO3是一个Python扩展库,它使得可以使用Rust编写Python扩展,因此不能直接使用PyO3开发Jython扩展。不过,Jython本身提供了一些API来编写Java扩展,可以使用这些API来开发Jython扩展。 在Jython中,可以使用Java的反射机制来访问Java类和方法。以下是一个使用JythonJava互操作的示例: ```python import java import java.lang.reflect.Method # 获取Java String类 string_class = java.lang.String # 创建Java String实例 java_string = string_class("Hello, World!") # 获取Java String的length方法 length_method = string_class.getMethod("length") # 调用length方法 result = length_method.invoke(java_string) # 打印结果 print(result) ``` 在上面的示例中,通过反射机制获取了Java String类和length方法,然后使用Jython调用了Java方法并获取了结果。 在开发Jython扩展时,可以使用类似的方式来调用Java类和方法。需要注意的是,Jython扩展需要编译成Java类,然后可以在Java代码中使用。可以使用Jython提供的命令行工具来编译Jython扩展: ``` jythonc mymodule.py ``` 这将会生成一个Java类文件mymodule.class,然后可以在Java代码中使用它。例如,以下代码演示了如何在Java中调用Jython扩展: ```java import org.python.util.PythonInterpreter; import org.python.core.PyObject; public class MyJavaClass { public static void main(String[] args) { // 创建Python解释器 PythonInterpreter interp = new PythonInterpreter(); // 导入Jython模块 interp.exec("import mymodule"); // 调用Jython函数 PyObject result = interp.eval("mymodule.myfunc('Hello, World!')"); // 打印结果 System.out.println(result); } } ``` 在上面的示例中,使用PythonInterpreter类创建了一个Python解释器,并导入了Jython模块。然后调用了Jython函数并获取了结果。需要注意的是,Jython扩展需要注意和Java互操作的问题,例如类型转换和异常处理等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值