Java調(diào)用Python的錯(cuò)誤

date: 2017-03-14 21:54:21

因?yàn)檫@篇Java調(diào)用Python 之前試過用Java調(diào)用Python制市,到真正用的時(shí)候才發(fā)現(xiàn)是一個(gè)烏龍食茎。

error

錯(cuò)誤就是我的程序太多了厂庇,程序命名混亂癣猾,導(dǎo)致執(zhí)行了不該執(zhí)行的程序,而我以為它跑通了霎匈。

這個(gè)方法:

Runtime.getRuntime().exec("python D:\\studentdb.py id password");  

并不能傳遞形參!B彝丁咽笼!
只可以這樣使用:
Runtime.getRuntime().exec("python D:\studentdb.py 12345678 666666");
這樣是可以把學(xué)號和密碼傳入Python文件,并且執(zhí)行戚炫。
而前者的形參方法剑刑,是會(huì)直接把形參當(dāng)成字符串直接傳進(jìn)Python...
這也就是說,這個(gè)方法只可以傳遞字符串双肤。
前幾天調(diào)到半夜發(fā)現(xiàn)的真理叛甫。

那么還有解決辦法嗎?
肯定有杨伙,要么是我不知道,要么是我不會(huì)萌腿。

新方法Jython

查找資料發(fā)現(xiàn)這個(gè)第三方包是可以用來傳遞Python參數(shù)并且執(zhí)行代碼限匣。
之前也有注意到這個(gè)方法,但是由于考慮到它的復(fù)雜性毁菱,和Runtime.getRuntime().exec()方法的簡單性米死,就沒有往這里想,畢竟程序員是最懶的贮庞。

首先得下載Jython這個(gè)第三方包峦筒。

調(diào)試記錄

1、console: Failed to install '': java.nio.charset.UnsupportedCharsetException: cp0.
Run As>Run Configurations,選擇第二個(gè)頁簽Arguments,在VM arguments中添加-Dpython.console.encoding=UTF-8即可窗慎,然后Apply>Run就行了
2物喷、java用jython.jar調(diào)用python腳本,腳本中import了第三方庫時(shí)遮斥,報(bào)錯(cuò):import xxx: no module named xxx.
兩種解決方法:
(1)下載或pip install需要的第三方庫峦失,將jython.jar改成jython.zip,并解壓縮术吗,將下載的第三方庫(以庫名定義的文件夾)放到j(luò)ython文件夾下的/Lib或/Lib/site-packages下尉辑,最后將jython文件夾重新打包(注意:打包時(shí)不要直接對jython文件夾打包,只打包jython根目錄下的所有文件)较屿,并改后綴為.jar隧魄,配置到j(luò)ava的工程目錄中(構(gòu)建路徑)。
(2)配置python的系統(tǒng)路徑隘蝎,java解析腳本時(shí)會(huì)到sys.path中找import的第三方庫购啄,只要sys.path中能找到第三方庫的文件夾即可。
注:在java端通過語句:PySystemState sys = Py.getSystemState();
System.out.println(sys.path.toString());打印路徑信息嘱么。

最后的bug與悔悟

一步步的將各個(gè)遇到的bug擊破闸溃,遇到最大的障礙:識(shí)別不了requests包。
和隊(duì)友們思前想后,覺得這可能是和Python的版本有關(guān)系辉川。
我們統(tǒng)一用的是Python35表蝙,從這個(gè)第三包的名字就可以的看出Jython2.7就能看得出它是支持Python27的。
又又又想起來《笨辦法學(xué)Python》里的一段話乓旗。
不要用Python3府蛇!
不要用Python3!屿愚!
不要用Python3;憧纭!妆距!
因?yàn)镻ython3要適配Python2的所有第三方包會(huì)花費(fèi)很長的時(shí)間穷遂!

但是事物的發(fā)展不就是要走在最前沿的嗎!
這個(gè)問題肯定有它的解決辦法娱据。只是我不知道和不會(huì)蚪黑。
現(xiàn)在最蠢的解決辦法有兩種:

  1. 重寫Python3程序?yàn)镻ython2
  2. 后臺(tái)將獲得的學(xué)號密碼生成為CSV文件保存到本地,再直接執(zhí)行Python程序中剩。Python程序里讀取本地CSV文件忌穿,獲取學(xué)號密碼,進(jìn)行爬蟲活動(dòng)结啼,存數(shù)據(jù)到MySQL掠剑,再刪除CSV。

第一種方法需要花時(shí)間郊愧。
第二種方法太笨朴译,在處理多并發(fā)的活動(dòng)時(shí)可能會(huì)崩塌。而且效率低属铁。

思前想后动分,為了以后工作的順利進(jìn)行,還是選擇第一種吧红选,重新寫Python程序?yàn)?澜公。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市喇肋,隨后出現(xiàn)的幾起案子坟乾,更是在濱河造成了極大的恐慌,老刑警劉巖蝶防,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甚侣,死亡現(xiàn)場離奇詭異,居然都是意外死亡间学,警方通過查閱死者的電腦和手機(jī)殷费,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門印荔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人详羡,你說我怎么就攤上這事仍律。” “怎么了实柠?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵水泉,是天一觀的道長。 經(jīng)常有香客問我窒盐,道長草则,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任蟹漓,我火速辦了婚禮炕横,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘葡粒。我一直安慰自己份殿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布塔鳍。 她就那樣靜靜地躺著,像睡著了一般呻此。 火紅的嫁衣襯著肌膚如雪轮纫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天焚鲜,我揣著相機(jī)與錄音掌唾,去河邊找鬼。 笑死忿磅,一個(gè)胖子當(dāng)著我的面吹牛糯彬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播葱她,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼撩扒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了吨些?” 一聲冷哼從身側(cè)響起搓谆,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎豪墅,沒想到半個(gè)月后泉手,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡偶器,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年斩萌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缝裤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡颊郎,死狀恐怖憋飞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情袭艺,我是刑警寧澤搀崭,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站猾编,受9級特大地震影響瘤睹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜答倡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一轰传、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瘪撇,春花似錦获茬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至渤涌,卻和暖如春佩谣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背实蓬。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工茸俭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人安皱。 一個(gè)月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓调鬓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親酌伊。 傳聞我的和親對象是個(gè)殘疾皇子腾窝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 本節(jié)內(nèi)容 Python介紹 發(fā)展史 Python 2 or 3? 安裝 Hello World程序 變量 用戶輸入...
    小小不懂11閱讀 3,423評論 2 30
  • 環(huán)境管理管理Python版本和環(huán)境的工具。p–非常簡單的交互式python版本管理工具居砖。pyenv–簡單的Pyth...
    MrHamster閱讀 3,794評論 1 61
  • 前言 Python的創(chuàng)始人為Guido van Rossum燕锥。1989年圣誕節(jié)期間,在阿姆斯特丹悯蝉,Guido為了打...
    依依玖玥閱讀 3,569評論 6 37
  • GitHub 上有一個(gè) Awesome - XXX 系列的資源整理,資源非常豐富归形,涉及面非常廣。awesome-p...
    若與閱讀 18,650評論 4 418
  • 第二章 為而不恃鼻由,功成弗居 原文: 天下皆知美之為美暇榴,斯惡矣厚棵;皆知善之為善,斯不善矣蔼紧。故有無相生婆硬,難易相成,長短相...
    cafuni梔子花開閱讀 224評論 0 1