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


相关推荐

  • 5G NR SSB概述[通俗易懂]

    5G NR SSB概述[通俗易懂]       SSB(SynchronizationSignal/PBCH,同步广播块)是5G中使用的最重要的导频信道之一,其作用关系到UE接入小区的很多方面,如小区搜索、波束测量、波束选择、波束恢复等。1、SSB时频域结构       在5G中,SSB包括同步信号和广播信号,具体同步信号包括PSS(PrimarySynchronizationSignal,

    2022年6月29日
    163
  • 使用Aspose.Cells导出excel

    使用Aspose.Cells导出excel先提供数据源 使用 aspose 创建 excel 的单元格和各种样式 插入图片 冻结单元格 行高等 publicstring ViewResultMo ViewResultMo Create true 获取数据源 为了能通用 转为 DataTable 其他类型的数

    2025年12月4日
    6
  • toArray方法的使用简记「建议收藏」

    toArray方法的使用简记「建议收藏」最近在写代码的时候需要用到的List的toArray方法。可是程序报错了报错代码大致这样的publicvoidfind(){List<String>list=newArrayList<String>();list.add("have");list.add("no");list.add("problem"…

    2022年5月14日
    46
  • pycharm环境变量配置失败_pycharm配置anaconda虚拟环境

    pycharm环境变量配置失败_pycharm配置anaconda虚拟环境去年编程的时候其实就看到有一些提示信息说,2021年元旦之后,python3.5就不再支持了。没想到今天配置新电脑,下载了新的pycharm版本的时候,就遇到这个问题如果一个环境前面显示了unsupported那表明,这个版本太老了,不再被支持。参考Pycharm社区文档:ConfigureaPythoninterpreter当pycharm不再支持一个过期的python版本时,对应的python编译器会被标记为unsupported…

    2022年8月28日
    8
  • trylock 用法_try可以没有catch吗

    trylock 用法_try可以没有catch吗tryLock的使用业务场景方法说明用法业务场景对于某些并发业务场景,我们可能想保证同一时刻只有一个线程在执行某一方法。例如:对于缓存的初始化工作,此时我们可以使用tryLock()方法对代码进行上锁,只有拿到锁的线程可以执行操作,而其他线程则只会在进行一次尝试后返回false。方法说明Acquiresthelockonlyifitisnotheldbyanotherthreadatthetimeofinvocation.只有在调用时它是空闲的才能获取锁。获取锁

    2022年10月15日
    5
  • Blob对象详解

    Blob对象详解第一步 聊聊概念 Blob BinaryLargeO 对象代表了一段二进制数据 提供了一系列操作接口 其他操作二进制数据的 API 比如 File 对象 都是建立在 Blob 对象基础上的 继承了它的属性和方法 第二步 两种使用方式 生成 Blob 对象有两种方法 一种是使用 Blob 构造函数 另一种是对现有的 Blob 对象使用 slice 方

    2025年9月4日
    4

发表回复

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

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