java调用python代码

简介: 同样的我们需要安装jython,具体的步骤如下: 1. 去 http://sourceforge.net/projects/jython/ 下载最新的jython相关的jar包。 2. 下载下来的jar包其实既是使用的时候需要引入的jar包,也是安装就jython的jar包。

同样的我们需要安装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的使用方式类似)

 

调用的代码示例如下:

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

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

 1 *sys-package-mgr*: processing new jar, '/home/zyq/KiDe/Redis/jar4java/commons-pool-1.5.4.jar'
 2 *sys-package-mgr*: processing new jar, '/home/zyq/KiDe/Redis/jar4java/jedis-2.1.0.jar'
 3 *sys-package-mgr*: processing new jar, '/home/zyq/KiDe/Redis/jar4java/junit-4.8.2.jar'
 4 *sys-package-mgr*: processing new jar, '/opt/jruby/jruby-9.1.2.0/lib/jruby.jar'
 5 *sys-package-mgr*: processing new jar, '/home/zyq/jython2.5.2/jython.jar'
 6 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/resources.jar'
 7 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/rt.jar'
 8 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/jsse.jar'
 9 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/jce.jar'
10 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/charsets.jar'
11 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/jfr.jar'
12 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/sunpkcs11.jar'
13 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/jfxrt.jar'
14 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/cldrdata.jar'
15 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/sunjce_provider.jar'
16 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/zipfs.jar'
17 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/localedata.jar'
18 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/nashorn.jar'
19 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/jaccess.jar'
20 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/sunec.jar'
21 *sys-package-mgr*: processing new jar, '/opt/java/jdk1.8.0_91/jre/lib/ext/dnsns.jar'
FirstInvokeInfo

后续调用的结果如下:

1 Tue
Result

 

黎明前最黑暗,成功前最绝望!
相关文章
|
6月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
466 6
|
7月前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
894 3
|
6月前
|
Java 数据处理 API
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
334 115
|
6月前
|
安全 Java 编译器
为什么你的Java代码需要泛型?类型安全的艺术
为什么你的Java代码需要泛型?类型安全的艺术
242 98
|
6月前
|
测试技术 Python
Python装饰器:为你的代码施展“魔法”
Python装饰器:为你的代码施展“魔法”
350 100
|
6月前
|
安全 Java 容器
告别繁琐判空:Optional让你的Java代码更优雅
告别繁琐判空:Optional让你的Java代码更优雅
|
6月前
|
开发者 Python
Python列表推导式:一行代码的艺术与力量
Python列表推导式:一行代码的艺术与力量
527 95
|
6月前
|
安全 Java 容器
告别空指针噩梦:Optional让Java代码更优雅
告别空指针噩梦:Optional让Java代码更优雅
485 94
|
7月前
|
Python
Python的简洁之道:5个让代码更优雅的技巧
Python的简洁之道:5个让代码更优雅的技巧
354 104
|
7月前
|
开发者 Python
Python神技:用列表推导式让你的代码更优雅
Python神技:用列表推导式让你的代码更优雅
618 99

推荐镜像

更多