我从我的Java代码调用Python脚本。这是代码:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class JavaRunCommand { public static void main(String args[]) throws IOException { // set up the command and parameter String pythonScriptPath = "my-path"; String[] cmd = new String[2]; cmd[0] = "python2.6"; cmd[1] = pythonScriptPath; // create runtime to execute external command Runtime rt = Runtime.getRuntime(); Process pr = rt.exec(cmd); // retrieve output from python script BufferedReader bfr = new BufferedReader(new InputStreamReader( pr.getInputStream())); String line = ""; while ((line = bfr.readLine()) != null) { // display each output line form python script System.out.println(line); } } }
python.py 有效吗
import os from stat import * c = 5 print c
python.py 无效
import MySQLdb import os from stat import * c = 5 print c # some database code down
所以,我正处于一个关键阶段,我的创业期限已经到了,我必须向客户端展示我的MVP项目,我正在考虑像这样调用Python脚本。当我打印没有dB连接和MySQLdb库的任何东西时,它工作。但是当我包含它们时,它不会运行python脚本。这里错了。它不是假设运行处理所有输入的过程。我安装了MySQLdb,脚本运行时没有java代码。
我知道这不是解决问题的最佳方法。但为了向客户展示一些东西我需要这件事。有什么建议吗?
答案 0 :(得分:0)
所以,我发现问题出在我用Java传递的参数来运行python程序。
第一个参数是 - python 2.6,但它应该只是python而不是某个版本号,因为MySQLdB和python存在兼容性问题。
我最终决定在python代码中使用MySQL Python连接器而不是MySQLdB。它的功效就像魅力一样,问题也解决了!