pycharm编写的文件如何执行_pycharm可以写java吗

pycharm编写的文件如何执行_pycharm可以写java吗最近在做编译原理课设,准备用Java写个GUI整合一下,因为自己的LL1文法使用python写的,所以需要Java来实现运行python代码,网上给出了主要三种方法,但是使用Jython的方法有局限性且不太方便,于是我将采用最简洁的方法Runtime.getRuntime()运行python代码,下面给出代码Processproc;try{/*注意:这里这种方式和cmd中使用python+文…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

最近在做编译原理课设,准备用Java写个GUI整合一下,因为自己的LL1文法使用python写的,所以需要Java来实现运行python代码,网上给出了主要三种方法,但是使用Jython的方法有局限性且不太方便,于是我将采用最简洁的方法

Runtime.getRuntime()运行

python代码,下面给出代码

Process proc;

try {

/* 注意:

这里这种方式和cmd中使用python+文件名的命令,调用python程序相同

建议先使用cmd方式确认代码能够正常运行,因为如果代码在pycharm下编写执行,

可能在cmd方式下会出现缺少包的情况

*/

proc = Runtime.getRuntime().exec(“python D:\\LL1.py”);// 执行py文件

proc.waitFor();

} catch (IOException e) {

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

上面给出的是一个简单的执行python文件的方法,

exec(“python + pyFile路径”)

除此之外,还能进行传递参数等等,这里转载一下:

http://blog.csdn.net/it_xiao_bai/article/details/79074988

先写一个示例python代码:

import sys

def func(a,b):

return (a+b)

if __name__ == ‘__main__’:

a = []

for i in range(1, len(sys.argv)):

a.append((int(sys.argv[i])))

print(func(a[0],a[1]))

其中sys.argv用于获取参数url1,url2等。而sys.argv[0]代表python程序名,所以列表从1开始读取参数。

以上代码实现一个两个数做加法的程序,下面看看在java中怎么传递函数参数,代码如下:

int a = 18;

int b = 23;

try {

String[] args = new String[] { “python”, “D:\\demo2.py”, String.valueOf(a), String.valueOf(b) };

Process proc = Runtime.getRuntime().exec(args);// 执行py文件

BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));

String line = null;

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

System.out.println(line);

}

in.close();

proc.waitFor();

} catch (IOException e) {

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

其中args是String[] { “python”,path,url1,url2 }; ,path是python程序所在的路径,url1是参数1,url2是参数2,以此类推。

最后结果为:41

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175343.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • smalldatetime和datetime的差别

    smalldatetime和datetime的差别碰上了这件事,才学到教训,一直以为smalldatetime和datetime的差别只是在于时间范围:smalldatetime的有效时间范围1900/1/1~2079/6/6datetime的有效时间范围1753/1/1~9999/12/31所以我判断如果该值不用到太远的日期范围,就会使用smalldatetime。但我忽略了更关键的差别,那就是smalldatetime只精准到分,而datet…

    2022年5月19日
    31
  • Idea激活码永久有效Idea2020.1.4激活码教程-持续更新,一步到位

    Idea激活码永久有效Idea2020.1.4激活码教程-持续更新,一步到位Idea激活码永久有效2020.1.4激活码教程-Windows版永久激活-持续更新,Idea激活码2020.1.4成功激活

    2022年6月17日
    77
  • java下载文件下载不动_java文件下载的问题

    java下载文件下载不动_java文件下载的问题以前没写过文件下载的程序,现在在servlet中试了试,有些问题请教大神。代码如下:publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException…以前没写过文件下载的程序,现在在servlet中试了试,有些问题请教大神。代码如下:publicvoiddoPost(H…

    2022年7月8日
    20
  • 内容大合集_十三大内容

    内容大合集_十三大内容文顶顶大神http://www.cnblogs.com/wendingding/p/3805088.html碎片知识大合集http://www.cnblogs.com/wujy/p/457161

    2022年8月5日
    6
  • JDBC连接(Statement和PrepareStatement)「建议收藏」

    JDBC连接(Statement和PrepareStatement)「建议收藏」1.JDBC连接的连接步骤(Statement和PrepareStatement)(1)注册驱动(只做一次)(2)建立连接(Connection) (3)创建执行SQL的语句(Statement)(4)执行语句(5)处理执行结果(ResultSet)(6)释放资源1.1注册驱动(1)Class.forName(“com.mysql.jdbc.Drive

    2022年5月24日
    52
  • 大疆网上测评题库_大疆笔试题

    大疆网上测评题库_大疆笔试题大疆笔试的体验很好,没有很为难应聘者,还有着自己鲜明的特点,我认为值得一说,特此写笔经记录一下,顺便攒攒RP,第一次笔经就献给大疆啦~笔试网站是大疆自己搭建的(UI设计炒鸡好看!!!),我猜题目也是大疆HR团队自己出的。从这点来看,大疆对人才的把控很严格,必须是自己经手选出来的人。整套笔试题目共有90道题,给了1.5个小时完成,题型包括态度行为题、行业知识题、工作情景题,以及略有升级的行测题。其中…

    2022年6月30日
    524

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号