Java启动python进程

标签 java python

我正在尝试通过 java 启动 python 脚本并通过套接字将数据发送回 java 程序。 我的问题是,当我在使用 Runtime.getRuntime().exec("python3 ~/Documents/sensor/sensorADC.py"); 创建 SocketServer 后启动 python 脚本时 没有建立连接,也没有传输数据。

但是当我通过 CLI 手动启动脚本时,一切正常。

程序启动的时间应该不是问题,因为我已经尝试了不同的方式和顺序。

java程序是一个javaFx应用程序。 编辑:在 Linux 中测试

第二次编辑: private void startPythonScript () { 尝试 { measureProcess = Runtime.getRuntime().exec("python3 ~/Documents/sensor/sensorADC.py")); } catch (IOException e){ e.printStackTrace(); } }

我错过了什么?

提前致谢

最佳答案

你很接近,你可以将一个数组传递给 exec 方法,如下所示:

String[] cmd = { "python3", "sensorADC.py", "~/Documents/sensor/"};
Runtime.getRuntime().exec(cmd);

它应该可以工作。

关于Java启动python进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50821130/

相关文章:

java - 创建 Json 字符串

python - 需要正则表达式才能在 python 中仅获取 Tably 名称和主键

python - 在不使用 modelForm 的情况下在 Django 中上传和调整图像大小

python - Holoviews 曲线中的关键维度用于在字典中查找值

java - Gradle + Tomcat 插件 + slf4j

java.lang.OutOfMemory错误: GC overhead limit exceeded when I load RDF file in Web Service

java - 转换为通用原始类。方法运行没有任何异常,如何以及为什么?

python - 学习Python的项目

python - Peewee ORM - 即使计数为 0,也注释多对多关系的计数

java - 如何对十六进制字符串进行base-64编码