javaweb中java和python混合使⽤
利⽤java web技术展⽰python算法处理后的数据
⼯具/原料
myeclipse10
pycharm+Anaconda2
⽅法/步骤
1.
⾸先安装配置好pycharm+Anaconda2
特别的,需要配置好python的环境变量,因为在⽤java调⽤python 的时候,需要通过线程调⽤
2.
测试环境变量是否配置成功
在命令窗⼝输⼊python,显⽰如下则说明配置成功
3.
将写好的python⼯程代码放置在Anaconda2的Lib⽬录下⾯
这⾥是Anaconda2安装的⽬录
例如我安装在D:\adt-bundle-windows-x86-20131030\Anaconda2
我的⼯程⽂件是content_recommender_core
那么就放在D:\adt-bundle-windows-x86-20131030\Anaconda2\Lib
4.
现在将写好的python⽂件放置到java web⼯程上去,这个⽂件的存放与java web⽂件的建⽴类似,所以可以放置在任何路径下,例如我是放在src⽬录下
5.
放置好所有⽂件之后,就是到了最关键的时候,那就是需该对应的⽂件路径
其中最重要的是需该python 代码中的config.py⽂件的路径
因为⼯程部署到了tomcat之后,相对的路径就会有些变化,所以需要修改
6.
例如python需要读取的⽂件是在我的tomcat的/webapps/PythonAndJSP/WEB-INF/classes/com/wtu/l,那么config.py⽂件中的路径设置应该是../webapps/PythonAndJSP/WEB-INF/classes/com/wtu/l
7.
为了达到路径的统⼀化修改,建议使⽤相对路径,那么在run.py⽂件中,可以这样设置路径,之后的路径变化,就只要修改config.py⽂件了
也就是需要引⽤的⽂件直接通过变量名引⽤
8.
所有的⼯作做好之后,就是测试
测试的主要代码
String path="G:/编译练习/JSP/PythonAndJSP/src/ETS/runS.py";
Process p;
String cmdStr="python "+path;
try
{
//执⾏命令
p = Runtime().exec(cmdStr);
//取得命令结果的输出流
InputStream InputStream();
p.waitFor();
/
/⽤⼀个读输出流类去读
InputStreamReader isr=new InputStreamReader(fis);
//⽤缓冲器读⾏
BufferedReader br=new BufferedReader(isr);
String line=null;
listCourse=new ArrayList<Course>();
//直到读完为⽌
java调用python模型while((adLine())!=null)
{
String lines[]=line.split("\t");
其中读取python执⾏⽂件的代码路径只能是本地上存放的⽂件位置,也就是说不能是tomcat上⾯的⽂件9. 9
到这⾥,所有的⼯程做完,可以正确运⾏得到最后的结果了
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论