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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 新RSS reader

    新RSS reader

    2022年1月10日
    39
  • HTML基础教程_网页编程html示范

    HTML基础教程_网页编程html示范1.一般我都是在记事本中写HTML文件,也有很多人用DreamWeaver,这个随意~~2.HTML的一般结构如下:—-以开始,以结束,表示之间的文档是HTML—-HTML文档的头部,主要放文档的标题信息未使用CSS的HTML文件—-HTML的主体部分 未使用CSS的HTML文件—-在网页中插入一条水平线未使用CSS的HTML文件

    2022年9月24日
    2
  • 机器学习系列(12)_XGBoost参数调优完全指南(附Python代码)[通俗易懂]

    机器学习系列(12)_XGBoost参数调优完全指南(附Python代码)[通俗易懂]这篇文章主要讲了如何提升XGBoost模型的表现。首先,我们介绍了相比于GBM,为何XGBoost可以取得这么好的表现。紧接着,我们介绍了每个参数的细节。我们定义了一个可以重复使用的构造模型的函数。最后,我们讨论了使用XGBoost解决问题的一般方法,在AVDataHackathon3.xproblem数据上实践了这些方法。希望看过这篇文章之后,你能有所收获

    2022年6月9日
    42
  • 微信公众号网页授权40029错误「建议收藏」

    微信公众号网页授权40029错误「建议收藏」1.检查appid和secret是否正确(基本不会错,纠结了一晚上居然认为是这里错了)2.发了两次请求导致错了在url中加入”connect_redirect=1″;修改之前的url’https://api.weixin.qq.com/sns/oauth2/access_token?appid=’.$wxInfo[‘z_app_id’].’&secret=’.$wxInfo[‘z_…

    2022年5月2日
    316
  • 流水线设计的概念_流水线原理

    流水线设计的概念_流水线原理流水线设计的概念它是面积换取速度思想的又一种具体现。所谓流水线设计实际上是把规模较大、层次较多的组合逻辑电路分为几个级,在每一级插入寄存器并暂存中间数据。流水线处理是提高组合逻辑设计的处理速度和吞吐量的常用手段。如果某个组合逻辑设计的处理流程可以分为若干步骤,而且整个数据处理过程是“单流向”的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,则可以考虑采用流水线设计方法提高数据处理频率,即吞吐量。……

    2022年8月14日
    6
  • TerminateProcess Function

     Terminatesthespecifiedprocessandallofitsthreads. BOOLWINAPITerminateProcess(__inHANDLEhProcess,__inUINTuExitCode);ParametershProcessAhand

    2022年4月7日
    40

发表回复

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

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