展开全部

在做项目的时候,有的时候由于合作人员之62616964757a686964616fe4b893e5b19e31333431346333间所会的编程语言的不同,会导致项目合作中的一些问题,很多时候需要不同语言之间的调用,这次就分享一下java调用python代码的东西。

一、python代码运行

巧妇难为无米之炊。首先,要确保python环境配置完好,并且相应的python代码可以运行。这个就不在这里进行讲述了,如果有需要可以查看我之前的一些文章。

二、java调用python代码

1、查阅了一些网上资料,看到了很多介绍使用jython调用python代码的例子,不过由于一些原因我没有尝试这个方法,而是直接测试了Runtime.getRuntime().exec(args)这个java库中自带的方法,下面直接切入主题。

2、先直接上代码:

python代码(helloword.py):

# coding:utf-8import numpy as np

if __name__ == '__main__':

a = np.ones(3)

print(a)    print '恭喜您!java调用python代码成功'

java代码(MyDemo.java):

import java.io.BufferedReader;import java.io.InputStreamReader;public class MyDemo {    public static void main(String[] args) {        try {

System.out.println("start");

String[] args1=new String[]{"/home/huan/anaconda2/bin/python","/home/huan/myfile/pythonfile/helloword.py"};

Process pr=Runtime.getRuntime().exec(args1);

BufferedReader in = new BufferedReader(new InputStreamReader(

pr.getInputStream()));

String line;            while ((line = in.readLine()) != null) {

System.out.println(line);

}

in.close();

pr.waitFor();

System.out.println("end");

} catch (Exception e) {

e.printStackTrace();

}

}

}

执行结果:

需要注意的是此行代码:

String[] args1=new String[]{"/home/huan/anaconda2/bin/python","/home/huan/myfile/pythonfile/helloword.py"};

这句代码是很重要的,首先一定要设置好你所使用的python的位置,切记不要直接使用python,因为系统会默认使用自带的python,所以一定要设置好你所使用的python的位置,否则可能会出现意想不到的问题(比如说我使用的是anaconda中的python,而ubuntu系统会默认调用自带的python,而我自带的python中并没有numpy库,所以会造成相应的代码不会执行的问题,所以设置好python的位置是很重要的)。还有就是要设置好py文件的位置,使用绝对路径。

还有就是可以看出,此方法可以满足我们python代码中调用第三方库的情况,简单实用。

三、java中向python代码动态传参

python代码(helloword.py):

# coding:utf-8import numpy as npimport sys

if __name__ == '__main__':

a = np.ones(3)

print(a)    print '恭喜您!java调用python代码成功'

print '脚本名为:%s'%(sys.argv[0])    print '传入的参数为:'

for i in range(1, len(sys.argv)):print '参数:%s'%(sys.argv[i])

java代码(MyDemo.java):

import java.io.BufferedReader;import java.io.InputStreamReader;public class MyDemo {    public static void main(String[] args) {        try {

System.out.println("start");

String para1="time";

String para2="sfdjk";

String[] args1 = new String[]{"/home/huan/anaconda2/bin/python", "/home/huan/myfile/pythonfile/helloword.py",para1,para2};

Process pr = Runtime.getRuntime().exec(args1);

BufferedReader in = new BufferedReader(new InputStreamReader(

pr.getInputStream()));

String line;            while ((line = in.readLine()) != null) {

System.out.println(line);

}

in.close();

pr.waitFor();

System.out.println("end");

} catch (Exception e) {

e.printStackTrace();

}

}

}

代码运行结果为:

好了,多余的话就不说了,一切尽在代码中。此处的分享就到这里了。

java调用python库pyd_Java怎么调用pyd文件相关推荐

  1. aardio - 调用Python库下载蓝奏盘文件

    Python库确实广泛,各种功能无处不在无孔不入无所不能,从蓝奏盘下载文件,利用Python的蓝奏云api库(lanzou),一句代码即可实现,方便的不要不要的: lzy.down_file_by_u ...

  2. java调用python库pyd_Java调用Python的两种方式

    1.前言 在与第三方程序或语言进行交互时,需要Java调用 2.使用Runtime的exec函数 在使用时需注意img = sys.argv[1]取下标为1的参数 package com; impor ...

  3. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(LabelFrame/Checkbutton/Radiobutton)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(LabelFrame/Checkbutton/Radiobutton) 导读 动态演示调用python库的t ...

  4. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command) 目录 tkinter应用案例 1.添加菜单栏组件 2.tkinter应用案例:添 ...

  5. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu/Menu的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu/Menu的Command) 目录 tkinter应用案例 1.添加右键弹出菜单 2.点击一个按钮弹 ...

  6. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Canvas)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Canvas) 导读 动态演示调用python库的tkinter带你进入GUI世界(Canvas) 目录 t ...

  7. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Find/undo事件) 导读 动态演示调用python库的tkinter带你进入GUI世界(Find/un ...

  8. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(text.insert/link各种事件) 导读 动态演示调用python库的tkinter带你进入GUI世 ...

  9. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件) 导读 动态演示调用python库的tkinter带你进入GUI世界(Button ...

  10. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command)

    Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command) 导读 动态演示调用python库的tkinter带你进入GUI世界 ...

最新文章

  1. Django链接数据库步骤
  2. nginx https http2
  3. 使用SAP OData offline库实现Android应用的离线(offline)模式
  4. netflix 模式创新_创新设计模式:工厂模式
  5. layui数据表格(一:基础篇,数据展示、分页组件、表格内嵌表单和图片)
  6. centos7 源码安装goaccess
  7. linux修改端口cost值,Linux下通过修改网卡驱动的参数调整Intel网卡的性能
  8. 浅谈网络通信中的流量整形
  9. JAVA费罗切测评_暴力美学的终极形态 JAVA Feroce 2评测
  10. SharePoint 2013技巧分享系列 - 隐藏Blog和Apps左侧导航菜单
  11. 提升存储过程的效率,用减少表的更新次数来实现
  12. 尹语堂®公益20210906
  13. HDU - 1431 素数回文 [ 学到了 ]
  14. 关于Mongodb的全面总结,学习mongodb的人,可以从这里开始
  15. Python 搭建一个简易QQ机器人
  16. GlassFish 任意文件读取
  17. 关于Banner制作有感(antD+react)
  18. ob2222mcp非隔离电源芯片
  19. 十年海军为什么选择开启代码人生?
  20. 交换机上实现的接入安全

热门文章

  1. Rplot函数图形参数设置
  2. 联网时显示已连接无法连接到服务器怎么办,路由器显示已连接不可上网怎么办?...
  3. iOS开发之静态库.a的制作教程
  4. Sql中的left函数、right函数
  5. muduo网络库:05---线程同步精要之(线程安全的Singleton实现)
  6. html5自助建站源码,疯狂原始人
  7. 微信音乐回复时出现“链接无效,无法播放”的情况
  8. 7月编程语言排行榜揭晓!
  9. 基于深度学习模型(1D CNN)实现钓鱼网站检测
  10. liunx 安装docker