0
我知道有很多類似的問題,但沒有解決我的問題執行Python ...從Java
所以,我想使用的ProcessBuilder從Java執行Python腳本...
下面是我寫的,並且不工作的方法:
public void stemPosts(String scriptPath, String inputFile, String outputFile)
throws IOException {
ProcessBuilder process = new ProcessBuilder("python", scriptPath,
inputFile, outputFile);
process.start();
}
,這裏是方法調用(<user_path>
僅僅是隱藏個人信息):
dataManager.stemPosts(
"D:/<user_path>/stemmer/Croatian_stemmer.py",
"D:/<user_path>/stemmer/posts.txt",
"D:/<user_path>/stemmer/stemmedPosts.txt");
第一個參數是腳本,第二個參數是第一個腳本參數(INPUTFILE)和第三個參數是第二個腳本參數(OUTPUTFILE)...
執行在cmd中很簡單:python Croatian_stemmer.py posts.txt stemmedPosts.txt
和工程...
以上代碼只是創建輸出文件,但它不填充數據...
我試圖改變文件分隔符,並沒有幫助...
所以,我按照你的建議重定向了它,但沒有打印出來。 接下來,python路徑設置正確; 這裏是腳本的原始形式:http://pastebin.com/0PNQrjZx – mister11
我想我看到它 - 你的python腳本假設'rules.txt'和'transformations.txt'在當前工作目錄中。如果你從終端運行腳本*除了stemmer目錄,你可能會遇到同樣的問題。運行腳本時,JVM工作目錄不會放在stemmer內部。讓你的python腳本找出它自己的絕對路徑和參考rules.txt和transformations.txt基於它 - 請參閱http://stackoverflow.com/questions/247770/retrieving-python-module-path – orpheist
還有一個注意你也可以可能只是使用sys.argv [0] – orpheist