2
我從Java代碼中調用Python腳本。這是代碼:從JAVA調用Python腳本MySQLdb導入
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代碼。
我知道這不是解決問題的最佳方法。但爲了向客戶展示我需要這件事情。有什麼建議麼 ?
你有什麼錯誤嗎?如果你不打印數據庫連接,你的java程序的輸出是什麼? – Nilesh 2013-03-07 06:05:24
您的python腳本是否從java以外的命令行運行?可能在命令shell中的Python無法找到該庫。看看這個問題:http://stackoverflow.com/questions/135035/python-library-path並從java和獨立打印sys.path – GregHNZ 2013-03-07 08:09:29