java语言的编译器可以用python_jython实现java运行python代码
Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。最近的一个项目需要将python代码转换成java实现,所以用了一下jython。
试用了jython的2.7的版本发现运行一直出错,不知道是不是版本的原因,但是2.5的版本还是可以的。
第一步,先来一个简单的(先确定你已经下载添加了对应的jar包)
java代码:
PythonInterpreter interpreter = newPythonInterpreter();
interpreter.execfile("/home/桌面/PycharmProjects/first/1.py");
python代码:
print("hello jython")
输出:
第二步:调用方法(不含参数)
java代码:
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile("/home/ybf/PycharmProjects/first/1.py");
PyFunction func_first = (PyFunction)interpreter.get("first",PyFunction.class);
PyFunction func_second= (PyFunction)interpreter.get("second",PyFunction.class);
PyObject pyobj = func_second.__call__();
System.out.println(pyobj);
python代码:
def first():
print("first ...........")
first()
def second():
a=100
b=50
return a+b
输出:
第三步:调用方法(含参数)
java代码:
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile("/home/ybf/PycharmProjects/first/1.py");
PyFunction func_third= (PyFunction)interpreter.get("third",PyFunction.class);
PyObject pyobj = func_third.__call__(new PyInteger(4), new PyInteger(2));
System.out.println(pyobj);
python代码:
def third(a,b):
c=sub(a,b)
d=sub(b,a)
return c*d
def sub(a,b):
return a-b
输出:
第四步:关于中文处理,这是一个很麻烦的方面,大家可以看下面的例子
java代码:
String a = "你好";
PyFunction func= (PyFunction)interpreter.get("word_process",PyFunction.class);
PyObject pyobj= func.__call__(newPyString(a));
System.out.println(pyobj.toString());
python代码:
defword_process(a):if a=="你好":print(True)else:print(False)print(a)return a
结果:
这里可以看到在Python里面输出在eclipse输出的是?,其实输出的是“你好”,但是因为平台的原因所以显示?(个人的理解),而且大家可以发现在python中的“你好”不等于java里面的“你好”,这方面本人还不知道,不知道有没有大佬知道,怎样处理才返回True,
str(a).encode('utf-8')=="你好".encode("utf-8")这样返回的也是False
第五步:打开txt文本
这里注意python里面的代码,如下:
f=open('src/dic/v.txt','rt')#注意文件路径while(True):
line=f.readline()if notline:break
print(line)
如果这里使用 with open('src/dic/v.txt','rt') as f 但在eclipse报错如下:
今天写到这里,有时间再更新
java语言的编译器可以用python_jython实现java运行python代码相关推荐
- java语言中声明布尔型_【Java初探02】——Java语言基础
本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...
- Java语言所有异常类均继承自_Java将运行错误分为两类:(__)和(__), 其对应的类均派生自(__)类;...
[单选题]设 x,y 均为已定义的类名,下列声明对象x1的语句中正确的是( ) [判断题]构造函数的方法名可以由编程人员任意命名. [单选题]能够实现对原文的鉴别和不可否认性的认证技术是( ). [单 ...
- java 语言 写字板_一个简单的java语言写字板.docx
一个简单的java语言写字板.docx 一个简单的JAVA语言写字板一.需求分析1.需求分析:现在网络上各种文档编辑器数不胜数.功能也是应有尽有,有能改变字体的,有可以改变字体颜色的,但是,这些软件有 ...
- java throwable判断,判断(2分) Java语言中的所有异常类都是java.lang.Throwable的子类。...
判断(2分) Java语言中的所有异常类都是java.lang.Throwable的子类. 更多相关问题 This artical is probably ________. 某企业2010年12月3 ...
- Java语言程序设计 :医院简易挂号管理系统 Java实验
Java语言程序设计 :医院简易挂号管理系统 Java实验 1.课程设计目的 医院预约挂号管理系统是每一个医疗机构管理平常挂号业务流程不可或缺的一个管理信息系统,它的存在解决了病人挂号难.看病难等问题 ...
- java vo转map_Jython:在 Java 程序里运行 Python 代码 4.5
彭翌 彭翌,网易游戏资深运维开发工程师,从事大数据相关的基础架构平台研发工作,业余时间也关注分布式系统等相关领域. 前言 众所周知,JVM 在大数据基础架构领域可以说是独占鳌头,当我们需要开发大数据处 ...
- Java 答疑:编译器和解释器有何区别?Java 语言属于编译型编程语言还是解释型编程语言?
文章目录 前言 一.Java 与 Java 字节码 二.什么是编译器(Compiler) 三.什么是解释器(Interpreter) 四.编译器与解释器有何区别? 五.Java 语言属于哪种语言? 总 ...
- java语言的编译器命令_Java编译器的命令是( )
[填空题]在应用广泛采用间歇喷射方式的多点电控燃油喷射系统中,按各缸喷油器的喷射顺序又可分为____________._____________.______________. [单选题]绝对商行为是 ...
- java语言编程基础_Java编程基础02——Java语言基础
1_(常量的概述和使用)* A:什么是常量(constant) 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 字符串常 ...
最新文章
- 大咖云集!航天智慧物流创意组-技术培训第三期
- 最近很火的 ClickHouse 是什么?
- 网络推广专员教你如何做好长尾关键词优化?
- SQL SERVER 2005 通过链接服务器 访问 ORACLE 的快速设定方法
- DL开源框架Caffe | 模型微调 (finetune)的场景、问题、技巧以及解决方案
- 使用Spring 框架能带来哪些好处?
- Ubuntu下安装Wine可能导致假死问题解决方案
- 又开火了!马斯克炮轰贝佐斯:建议分拆亚马逊!
- Cannot use a leading .. to exit above the top directory
- 《初级会计电算化实用教程(金蝶KIS专业版)》一导读
- 异速联(E-SoonLink)标准版
- 网站分析实战总结(一)
- shopify抓单按时间总是少一些的解决
- C语言入门题库——求2+22+222+......+22222的值
- c语言图片渐入代码_如何用c语言读取图片
- 35岁是个坎,为啥到岁数就不想要你了
- linux+显卡驱动下载官网下载地址,下载:NVIDIA显卡Linux驱动256.44正式版
- 奖补不要错过!2022年四川省18地市高新技术企业奖励补贴政策及申报条件汇编!
- Android Canvas 缩放(Scale)
- 在python中如何读取批量图片_Python批量处理图片
热门文章
- 多序列比对的c语言程序,多序列比对的实际应用
- ppt拖动就复制_学会这3个PPT技巧和29个快捷键!让你的PPT脱颖而出,领导叫好
- docker中部署Tomcat
- 【windows】编译安装ninja
- 【精简解释】Java中native关键字作用
- 一文搞定深度优先搜索(DFS)与广度优先搜索(BFS)【含完整源码】
- 深圳农村商业银行转账显示服务器无响应,深圳农村商业银行
- php输出的数组如何存入表单,jquery:如何在jquery中将数组附加到表单请求并将其发送到php...
- strace 命令详解
- C/Cpp / string 截取、替换、查找