導航:首頁 > 編程語言 > javajython調用

javajython調用

發布時間:2023-03-04 15:49:27

Ⅰ eclipse中 java程序怎樣調用python

eclipse中 java程序調用python方法如下:
package com.lyz.test.jython;
import org.python.util.PythonInterpreter;
/**
* 第一個Jython程序
* @author liuyazhuang
*
*/
public class FirstJythonScript {
public static void main(String args[]) {
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); ");
interpreter.exec("print days[1];");
}
}

Ⅱ 怎麼在java的flink中調用python程序

1. 在java類中直接執行python語句
此方法需要引用 org.python包,需要下載Jpython。在這里先介紹一下Jpython。下面引入網路的解釋:

Jython是一種完整的語言,而不是一個Java翻譯器或僅僅是一個Python編譯器,它是一個Python語言在Java中的完全實現。Jython也有很多從CPython中繼承的模塊庫。最有趣的事情是Jython不像CPython或其他任何高級語言,它提供了對其實現語言的一切存取。所以Jython不僅給你提供了Python的庫,同時也提供了所有的Java類。這使其有一個巨大的資源庫。
這里我建議下載最新版本的Jpython,因為可以使用的python函數庫會比老版本的多些,目前最新版本為2.7。
下載jar包請點擊Download Jython 2.7.0 - Standalone Jar
下載安裝程序請點擊Download Jython 2.7.0 - Installer
如果使用maven依賴添加的話,使用下面的語句
<dependency>
<groupId>org.python</groupId>
<artifactId>jython-standalone</artifactId>
<version>2.7.0</version>
</dependency>
以上准備好了,就可以直接在java類中寫python語句了,具體代碼如下:
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("a=[5,2,3,9,4,0]; ");
interpreter.exec("print(sorted(a));"); //此處python語句是3.x版本的語法
interpreter.exec("print sorted(a);"); //此處是python語句是2.x版本的語法
輸出結果如下:這里會看到輸出的結果都是一樣的,也就是說Jpython兼容python2.x和3.x版本的語句,運行速度會比直接運行python程序稍慢一點。
但是每次運行結果都會提示console: Failed to install 」: java.nio.charset.UnsupportedCharsetException: cp0. 這樣看起來很煩,因為每次運行結果都會出現紅色的提示語句,以為是錯誤,程序員應該都不願意看到這一幕,得想個辦法解決。
解決方法如下:
在要執行的代碼上右鍵, Run As>Run Configurations,選擇第二個頁簽Arguments,在VM arguments中添加以下語句
-Dpython.console.encoding=UTF-8
然後Apply->Run就可以了。

Ⅲ jython 可以調用java包嗎

參考下面方法:
1.直接執行Python腳本代碼
引用 org.python包
1 PythonInterpreter interpreter = new PythonInterpreter();
2 interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); "); ///執行python腳本
2. 執行python .py文件
1 PythonInterpreter interpreter = new PythonInterpreter();
2 InputStream filepy = new FileInputStream("D:\\demo.py");
3 interpreter.execfile(filepy); ///執行python py文件
4 filepy.close();
3. 使用Runtime.getRuntime()執行腳本文件
這種方式和.net下面調用cmd執行命令的方式類似。如果執行的python腳本有引用第三方包的,建議使用此種方式。使用上面兩種方式會報錯java ImportError: No mole named arcpy。
1 Process proc = Runtime.getRuntime().exec("python D:\\demo.py");
2 proc.waitFor();

Ⅳ 用java 調用python webservice 是怎麼調的

這次出差,我接觸最多的是spss,由於項目基於j2ee開發,而java又不能直接取得spss統計結果,好在spss對python的支持還行,最終成功實現了這個模塊。感謝前輩們做出的貢獻,沒有你們,我就不能這樣迅速、順利的完成項目,且別說寫這篇文章了。
在前期准備中,我摸索、嘗試了三種實現:jython,http,soap,在網上查了很多相關資料,都是只言片語,自己看了還要結合其他的資料才能弄個明白。當然,在這探索的過程中,我是幸運的,每天都讓我充滿驚喜,每天都有新的收獲。
jython是java版本的python,也就是java的完全實現。java代碼中,可以調用python的方法,缺點是,jython中導入第三方python mole時,不是那麼回事。因為spss的python api主要是一個.pyd的二進制文件,jython導包是按照java的位元組碼來導入的,所以當在jython中導入spss的python api時會出錯,這個想法徹底破滅。
http實現是在現有的B/S交互實現上突發奇想的,python中實現一個簡單的web server只要幾十行代碼,java使用apache的httpclient訪問,現在想來確實有點大材小用,自己寫一個http socket來請求和響應也寫不了多少代碼。最後還是實現了,支持spss中文,但是數據封包都要自己來實現,還是有嫌麻煩。
soap實現最簡單,server端幾十行代碼搞定。由於我把spss命令都封裝到一個方法中執行了,所以就沒有用wsdl來生成java代碼了,我使用了較底層的java的http socket,手動對SOAP-ENV打包,並向server端請求,手動解析響應數據。缺點是:SOAP對中文的支持,無論怎麼轉碼,不是python解析SOAP-ENV報錯,就是python執行spss命令報錯。

Ⅳ java調用python時傳遞的參數問題

需要用到需要用到jython.jar
java example:

public static void main(String[] args) {
//定義參數
String[] args2 = {"arg1","arg2"};
//設置參數
PythonInterpreter.initialize(null, null, args2);
PythonInterpreter interpreter = new PythonInterpreter();
//執行
interpreter.execfile("E:\\jython.py");
System.out.println("----------run over!----------");
}
python的程序:
#!/bin/env python
import time
import sys
argCount = len(sys.argv)
print('before sleep')
time.sleep(5);
print('after sleep')
for str in sys.argv:
print(str)

Ⅵ Java怎麼用jython調用python

args, 為可選參數,會被 JPype 直接傳遞給 JVM 作為 Java 虛擬機的啟動百參數。此處適合所有合法的度 JVM 啟動參數,例如:
-agentlib:libname[=options]
-classpath classpath
-verbose
-Xint

Ⅶ 在java代碼中調用python並傳遞參數

需要用到需要用到jython.jar
java example:

public static void main(String[] args) {
//定義參數
String[] args2 = {"arg1","arg2"};
//設置參數
PythonInterpreter.initialize(null, null, args2);
PythonInterpreter interpreter = new PythonInterpreter();
//執行
interpreter.execfile("E:\\jython.py");
System.out.println("----------run over!----------");
}
python的程序:
#!/bin/env python
import time
import sys
argCount = len(sys.argv)
print('before sleep')
time.sleep(5);
print('after sleep')
for str in sys.argv:
print(str)

閱讀全文

與javajython調用相關的資料

熱點內容
java多類繼承 瀏覽:157
怎麼用多玩我的世界連接伺服器地址 瀏覽:481
為什麼華為手機比安卓流暢 瀏覽:175
javamap多線程 瀏覽:226
卡西歐app怎麼改時間 瀏覽:841
jquery壓縮圖片 瀏覽:970
用紙筒做解壓東西 瀏覽:236
神奇寶貝伺服器如何tp 瀏覽:242
雲伺服器支持退貨嗎 瀏覽:277
貸款等額本息演算法 瀏覽:188
根伺服器地址配置 瀏覽:499
單片機是軟體還是硬體 瀏覽:624
vivo手機怎麼看編譯編號 瀏覽:320
塑鋼扣條演算法 瀏覽:301
linux應用程序安裝 瀏覽:414
linux怎麼查找命令 瀏覽:431
安卓12原生和非原生是什麼意思 瀏覽:277
四川廣電怎麼安裝app 瀏覽:6
大話西遊伺服器是什麼意思 瀏覽:775
誇克解壓壓縮文件 瀏覽:915