① java 調用 python腳本 ImportError: No mole named os
確定。應該有。我去試試。給你一個瞬間回答。但在我的印象Jython的字元串都習慣於從java。因此,直接使用Java就可以了。 StringIO的做字元串的文件對象封裝。用於壓縮或東西。按理應該再次認識Jython的內部。
我只是試了一下。我使用Jython的2.5.1,利用java 1.7 U9。我可以嘗試安裝了一下後。
D:\ jython2.5.1> jython.bat
*,SYS包經理:處理新的jar,'D:\ jython2.5.1 \的jython.jar'
*系統包經理:處理新的jar,'D:\ JAVA \ jre7 \ lib中\ resources.jar'
*,SYS包經理*:處理新的罐子,「D:\ JAVA \ jre7 \ LIB \ RT。罐子'
*,SYS包經理*:處理新的jar,'D:\ JAVA \ jre7 \ LIB \ jsse.jar'
*,SYS包經理*:處理新的罐子,「D :\ Java \ jre7的\ LIB \ jce.jar中'
*,SYS包經理*:處理新的罐子,「D:\ JAVA \ jre7 \ LIB \包含charsets.jar'
*系統包經理:處理新的罐子,「D:\ Java \ jre7的\ LIB \ jfr.jar中'
*,SYS包經理*:加工新罐子,'D:\ JAVA的lib \ ext中\ jre7 \ \訪問橋64.ja
'
*,SYS包經理*:處理新的罐子,「D:\ JAVA \ jre7 \ LIB \分機\ dnsns.jar'
*系統包經理:處理新的jar,'D:\ JAVA \ jre7 \的lib \ ext \中jaccess.jar'
*,SYS包經理*:處理新的jar,'D:\ JAVA \ jre7 \ LIB \分機\ localedata.jar中'
*,SYS包經理*:處理新的罐子,「D:\ JAVA \ jre7 \ LIB \ ext \中sunec.jar'
*系統封裝 - 經理:處理新的jar,'D:\ JAVA \ jre7 \ LIB \ ext \中把sunjce_provider.jar
*,SYS包經理*:處理新的jar,'D:\ JAVA \ jre7 \ LIB \分機\ sunmscapi.jar中'
*,SYS包經理*:處理新的jar,'D:\ JAVA \ jre7 \的lib \ ext \中zipfs.jar'
Jython的2.5.1( Release_2_5_1:6813 2009年9月26日13點47分54秒)
的Java HotSpot(TM)64位伺服器VM(甲骨文公司)] java1.7.0_09
鍵入「help」,「版權「,」信用「或」許可證「的詳細信息。
>>>進口StringIO的
>>>
② 建立java與python的介面,讓java能調用python腳本。請問可以用什麼方式
不建議研究抄jython。比較簡單的思路襲是把python腳本完全當做一個外部程序,用shell方式調用它。
首先設計好python腳本的介面,把參數用命令行方式傳入,然後輸出列印出來。示例:
$ python func.py arg1 arg2
result
然後在java里就可以用Runtime來執行shell命令,解析輸出字元串然後得到結果。
③ Java怎麼調用pyd文件
在做項目的時候,有的時候由於合作人員之間所會的編程語言的不同,會導致項目合作中的一些問題,很多時候需要不同語言之間的調用,這次就分享一下java調用python代碼的東西。
一、python代碼運行
巧婦難為無米之炊。首先,要確保python環境配置完好,並且相應的python代碼可以運行。這個就不在這里進行講述了,如果有需要可以查看我之前的一些文章。
二、java調用python代碼
1、查閱了一些網上資料,看到了很多介紹使用jython調用python代碼的例子,不過由於一些原因我沒有嘗試這個方法,而是直接測試了Runtime.getRuntime().exec(args)這個java庫中自帶的方法,下面直接切入主題。
2、先直接上代碼:
python代碼(helloword.py):
# coding:utf-8import numpy as np
if __name__ == '__main__':
a = np.ones(3)
print(a) print '恭喜您!java調用python代碼成功'
java代碼(MyDemo.java):
import java.io.BufferedReader;import java.io.InputStreamReader;public class MyDemo { public static void main(String[] args) { try {
System.out.println("start");
String[] args1=new String[]{"/home/huan/anaconda2/bin/python","/home/huan/myfile/pythonfile/helloword.py"};
Process pr=Runtime.getRuntime().exec(args1);
BufferedReader in = new BufferedReader(new InputStreamReader(
pr.getInputStream()));
String line; while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
pr.waitFor();
System.out.println("end");
} catch (Exception e) {
e.printStackTrace();
}
}
}
執行結果:
好了,多餘的話就不說了,一切盡在代碼中。此處的分享就到這里了。