目前状态:毕业设计ing
背景:
做毕设时,由于需要将python的运行效果展示出来,所以使用了Java写了一个前端的界面。但是在使用Java对python的脚本进行调用时就尴尬了,出错……
这里也许有人会疑问了,为什么不使用Django呢,就我个人而言吧,对Django使用的不是很熟悉,尽管它很方便,然而我学习过一年的企业级应用开发,索性就使用了Java进行开发。
问题:
开始想着在maven的pom.xml中配置一个python的接口直接调用已经封装好的python脚本,结果尴尬了,调用一般的文件都没问题,唯独对我封装的cmd命令出错,希望大神解答……
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile("E:/Java_project/Covid_19/src/main/Runing.py");
import os
import time
os.system('python detect.py --data-cfg data/rbc.data --cfg cfg/yolov3-tiny.cfg --weights weights/best.pt')
解决:
尝试了很多次,无果。索性跳出这个方法的限制,于是询问了老友月小水长(欢迎关注哈,干货满满的一位博主且具有丰富的开发经验)。他告诉我:跨语言调用会出现很多的错误;并给了我一些建议……
但是我还是想尝试使用Java的方式,最后使用Runtime.getRuntime().exec()方法解决了
Runtime.getRuntime().exec("参数1",null,
new File("参数2"));
解释:
参数1的位置为命令;
参数2的位置为执行命令的具体路径;
例如你想在: C:\Users\huzixuan\Desktop\DataSet的路径下执行: hello.py文件就可以这样写
Runtime.getRuntime().exec("python hello.py",null,
new File("C:\Users\huzixuan\Desktop\DataSet"));
由于笔者能力有限,在表述上可能有些欠缺,还请多多包涵…………