同样的我们需要安装jython,具体的步骤如下:

1. 去 http://sourceforge.net/projects/jython/ 下载最新的jython相关的jar包。

2. 下载下来的jar包其实既是使用的时候需要引入的jar包,也是安装就jython的jar包。具体安装细节参照:https://wiki.python.org/jython/InstallationInstructions#jython-2-7-0

其实直接使用: java -jar jython_installer-2.5.2.jar 就可以根据界面指导进行安装。

3. 如果我们现在想在java中调用python代码或者执行python文件,我们只需引入jypthon安装目录下的jython.jar即可。(这一点和jruby的使用方式类似)

调用的代码示例如下:

 PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); ");
interpreter.exec("print days[1];");

JavaCallPython

首次调用会输出很多标红的编译对应jar包的信息:

 *sys-package-mgr*: processing new jar, '/home/zyq/KiDe/Redis/jar4java/commons-pool-1.5.4.jar'
*sys-package-mgr*: processing new jar, '/home/zyq/KiDe/Redis/jar4java/jedis-2.1.0.jar'
*sys-package-mgr*: processing new jar, '/home/zyq/KiDe/Redis/jar4java/junit-4.8.2.jar'
*sys-package-mgr*: processing new jar, '/opt/jruby/jruby-9.1.2.0/lib/jruby.jar'
*sys-package-mgr*: processing new jar, '/home/zyq/jython2.5.2/jython.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/resources.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/rt.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/jsse.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/jce.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/charsets.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/jfr.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/sunpkcs11.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/jfxrt.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/cldrdata.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/sunjce_provider.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/zipfs.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/localedata.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/nashorn.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/jaccess.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/sunec.jar'
*sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/dnsns.jar'

FirstInvokeInfo

后续调用的结果如下:

 Tue

Result

java调用python代码的更多相关文章

  1. (转)java调用python脚本

    这篇博客旨在吐血分享今天遇到的java调用python脚本遇到的坑,折腾了3个多小时终于可以跑通了,代码超级短,但网上的好多资料都是抄来抄去的,很少有能够直接跑通的,尤其是针对你的python文件中用 ...

  2. Python一键转Jar包,Java调用Python新姿势!

    粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 本文结构: 需求背景 进击的Python Java和Pytho ...

  3. 如何在Java中调用Python代码

    有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...

  4. 在Java中调用Python代码

    极少数时候,我们会碰到类似这样的问题:与A同学合作写代码, A同学只会写Python,不熟悉Java ,而你只会写Java不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方 ...

  5. Java 调用python说明文档

    Java 调用python说明文档 通过java调用python脚本主要如下三种方式: 1.直接执行python脚本: 2.执行python.py文件: 3.使用Runtime.getRuntime( ...

  6. java调用python程序以及向python程序传递参数

    在做项目的时候,经常会碰到这个问题,主要程序是用java写的,有些功能使用python写的,整个项目需要把java代码和python代码进行整合,在一个项目里面运行,这就涉及到java调用python ...

  7. android开发中调用python代码(带参数)

    android开发主要用到的是java代码,但是当开发涉及到一些算法时,往往用python可以提高软件的运行速度,也更加便捷,这里分享自己项目调用python代码的方式,主要有以下几个步骤(个人方法, ...

  8. java调用python脚本并向python脚本传递参数

    1.安装Eclipse 先安装jdk,再安装Eclipse,成功后开始建立py_java项目,在这个项目的存储目录SRC下建立test包,在test包中New-Class,新建MyDemo类,建好完成 ...

  9. java调用python的惨痛史(无法获取环境变量)

    环境:java,was,python2.6,红帽linux,oracle,python用cx_Oracle        事情是这样的,有个需求,需要对数据库进行处理,简单说就是把数据取出来,用pyt ...

随机推荐

  1. MySQL慢日志监控脚本实例剖析

    公司线上的 MySQL 慢日志,之前一直没有做好监控.趁着上周空闲,我就把监控脚本写了下,今天特地把代码发出来与51博友分享一下. 针对脚本的注解和整体构思,我会放到脚本之后为大家详解. 1 2 3 ...

  2. 手机浏览器JS识别

    识别方法:采用Fiddler 抓包工具 侦测手机http链接,抓取http头 查看 工具:Fiddler 1:Fiddler配置 允许远程设备连接,配置端口为默认8888(确保8888端口没有被其他进 ...

  3. [转载]SharePoint 2013搜索学习笔记之自定义结果源

    搜索中心新建好之后在搜索结果页上会默认有所有内容,人员,对话,视频这四个结果分类,每个分类会返回指定范围的搜索结果,这里我再添加了部门日志结果分类,搜索这个分类只会返回部门日志内容类型的搜索结果,要实 ...

  4. CMD魔法堂:获取进程路径和PID值的方法集

    一.前言    在开发发布更更新工具——更新Weblogic应用模块时,了解到更新Weblogic应用需要先关闭Weblogic应用窗口然后是清缓存.更新应用文件,最后再重启Weblogic应用窗口. ...

  5. 使用Spark分析拉勾网招聘信息(二): 获取数据

    要获取什么样的数据? 我们要获取的数据,是指那些公开的,可以轻易地获取地数据.如果你有完整的数据集,肯定是极好的,但一般都很难通过还算正当的方式轻易获取.单就本系列文章要研究的实时招聘信息来讲,能获取 ...

  6. Qt Style Sheet实践(二):组合框QComboBox的定制

    导读 组合框是一个重要且应用广泛的组件,一般由两个子组件组成:文本下拉单部分和按钮部分.在许多既需要用户选择.又需要用户手动输入的应用场景下,组合框能够很好的满足我们的需求.如我们经常使用的聊天软件Q ...

  7. AccessHelper

    代码: using System; using System.Data; using System.Configuration; using System.Data.OleDb; using ahwi ...

  8. [新手学Java]使用内省(Introspector)操作JavaBean属性

    获取类bean中的所有属性: @Test //获取类bean中的所有属性 public void test1() throws Exception{ BeanInfo info = Introspec ...

  9. 使用mvc3实现ajax跨域

    ajax跨域一般两种方式   1:cors,2:jsonp, 1:cors jsonp是get形式,承载的信息量有限,所以信息量较大时CORS是不二选择 在请求消息头添头 Access-Control ...

  10. css中inline、block、inline-block的区别

    http://www.cnblogs.com/fxair/archive/2012/07/05/2577280.html display:inline就是将元素显示为块级元素. block元素的特点是 ...