在java中调用python方法
1、http://sourceforge.net/projects/jython/下载jython包,把其中的jython.jar添加到工程目录
示例:
1、摘自:http://blog.csdn.net/anbo724/article/details/6608632
1.在java类中直接执行python语句
- import javax.script.*;
- import org.python.util.PythonInterpreter;
- import java.io.*;
- import static java.lang.System.*;
- public class FirstJavaScript
- {
- public static void main(String args[])
- {
- PythonInterpreter interpreter = new PythonInterpreter();
- interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); ");
- interpreter.exec("print days[1];");
- }//main
- }
这样得到的结果是Tue,在控制台显示出来,这是直接进行调用的。
2.在java中调用本机python脚本中的函数:
首先建立一个python脚本,名字为:my_utils.py
- def adder(a, b):
- return a + b
然后建立一个java类,用来测试,
java类代码 FirstJavaScript:
- import javax.script.*;
- import org.python.core.PyFunction;
- import org.python.core.PyInteger;
- import org.python.core.PyObject;
- import org.python.util.PythonInterpreter;
- import java.io.*;
- import static java.lang.System.*;
- public class FirstJavaScript
- {
- public static void main(String args[])
- {
- PythonInterpreter interpreter = new PythonInterpreter();
- interpreter.execfile("C:\\Python27\\programs\\my_utils.py");
- PyFunction func = (PyFunction)interpreter.get("adder",PyFunction.class);
- int a = 2010, b = 2 ;
- PyObject pyobj = func.__call__(new PyInteger(a), new PyInteger(b));
- System.out.println("anwser = " + pyobj.toString());
- }//main
- }
得到的结果是:anwser = 2012
3.使用java直接执行python脚本,
建立脚本inputpy
- #open files
- print 'hello'
- number=[3,5,2,0,6]
- print number
- number.sort()
- print number
- number.append(0)
- print number
- print number.count(0)
- print number.index(5)
建立java类,调用这个脚本:
- import javax.script.*;
- import org.python.core.PyFunction;
- import org.python.core.PyInteger;
- import org.python.core.PyObject;
- import org.python.util.PythonInterpreter;
- import java.io.*;
- import static java.lang.System.*;
- public class FirstJavaScript
- {
- public static void main(String args[])
- {
- PythonInterpreter interpreter = new PythonInterpreter();
- interpreter.execfile("C:\\Python27\\programs\\input.py");
- }//main
- }
得到的结果是:
- hello
- [3, 5, 2, 0, 6]
- [0, 2, 3, 5, 6]
- [0, 2, 3, 5, 6, 0]
- 2
- 3
在java中调用python方法的更多相关文章
- 如何在Java中调用Python代码
有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...
- 在Java中调用Python
写在前面 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然,之所以要面对这个问题,或许是因为一些历史原因,或者仅仅是为了简单.恰好我在项目中就遇到了这个问题 ...
- 在Java中调用Python代码
极少数时候,我们会碰到类似这样的问题:与A同学合作写代码, A同学只会写Python,不熟悉Java ,而你只会写Java不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方 ...
- C#中调用python方法
最近因为项目设计,有部分使用Python脚本,因此代码中需要调用python方法. 1.首先,在c#中调用python必须安装IronPython,在 http://ironpython.codepl ...
- python爬虫简单实现,并在java中调用python脚本,将数据保存在json文件中
# coding:utf-8 import urllib2 from bs4 import BeautifulSoup import json import sys reload(sys) sys.s ...
- 使用Runtime.getRuntime().exec()在java中调用python脚本
举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...
- [转]如何在Java中调用DLL方法
转载地址:http://developer.51cto.com/art/200906/129773.htm Java语言本身具有跨平台性,如果通过Java调用DLL的技术方便易用,使用Java开发前台 ...
- odoo14 button 事件调用python方法如何传递参数
1 <field name="user_ids" 2 mode="kanban" 3 nolabel="1" 4 options=&q ...
- python基础----继承与派生、组合、接口与归一化设计、抽象类、子类中调用父类方法
一.什么是继承 继承是一种创建新的类的方式,在pyth ...
随机推荐
- 学习笔记(21)- texar 文本生成
今天试了文本生成框架texar https://github.com/asyml/texar 这个texar框架里面,也有端到端的实现 pwd /Users/huihui/git/ git clone ...
- 转载--php 7.2 安装 mcrypt 扩展
在 php 官网下载 mcrypt 包,php 扩展官网 # wget http://pecl.php.net/get/mcrypt-1.0.1.tgz # tar xf mcrypt-1.0.1.t ...
- pacman 包管理器相关设定
pacman 包管理器相关设定 使用国内源 sudo pacman-mirrors -i -c China -m rank 设定 archlinuxcn 源 编辑/etc/pacman.conf,末尾 ...
- pdf.js的使用(1) 站在巨人的肩膀上纯干货分享,没有华丽的词藻
以下是我在实际项目开发中的过程分享 前端是:vue+jsp 1.首先下载pdf.js(怎么下可以去百度),实在不会就私我,我发给你 1.1展示一哈我下载下来的pdf.js的目录结构 1.2接下来可 ...
- 路由器安全-FPM
1.FPM(也叫NGACL) FPM是Cisco IOS新一代的ACL,叫做Flexible Packet Matching,灵活的包匹配. 根据任意条件,无状态的匹配数据包的头部,负载,或者全部. ...
- Redis为什么要自己实现一个SDS
Redis是使用C语言开发的,在C语言中没有字符串这种数据类型,字符串大都是通过字符数组实现的,但是使用字符数组有以下不足: 1. 字符数组的长度都是固定,容易发生空指针2. 获取字符数组的长度的时候 ...
- Python读取MNIST数据集
MNIST数据集获取 MNIST数据集是入门机器学习/模式识别的最经典数据集之一.最早于1998年Yan Lecun在论文: Gradient-based learning applied to do ...
- python输出颜色与样式的方法
一.输出颜色与样式的方法 上次遇到这个问题就想写下来,其实当时我也不怎么会,老师说这个东西不需要理解,只需要死记硬背,写的多了就记住了,所以今天搜集了几篇文章,加上自己的理解,写下了这篇python ...
- linux 镜像备份工具rsnyc
1.本地拷贝文件nohup rsync -avzh /data/wwwroot/xhprof/* /mnt/xhprof/ &2.更改文件夹名称mv /data/wwwroot/xhprof ...
- [Write-up]-Trollcave: 1.2
关于 下载地址:点我 Flag:root/flag.txt 哔哩哔哩:视频 信息收集 不知道VM虚拟机怎么啦,导入镜像后,用Nmap扫了,发现不了主机.所以这次用了VBox. vboxnet0的IP为 ...