新聞中心
在Java中調(diào)用Python腳本,可以使用以下幾種方法:

我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、樂都ssl等。為1000多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的樂都網(wǎng)站制作公司
1、使用Runtime類執(zhí)行Python腳本
2、使用ProcessBuilder類執(zhí)行Python腳本
3、使用第三方庫(kù)Jython
下面分別詳細(xì)介紹這三種方法。
1、使用Runtime類執(zhí)行Python腳本
確保你的計(jì)算機(jī)上已經(jīng)安裝了Python,并將其添加到環(huán)境變量中,創(chuàng)建一個(gè)Python腳本(test.py),內(nèi)容如下:
print("Hello, Java!")
接下來,在Java代碼中使用Runtime類執(zhí)行這個(gè)Python腳本:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class JavaCallPython {
public static void main(String[] args) {
try {
// 指定Python腳本的路徑
String pythonScriptPath = "test.py";
// 使用Runtime類執(zhí)行Python腳本
Process process = Runtime.getRuntime().exec("python " + pythonScriptPath);
// 獲取Python腳本的輸出結(jié)果
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待Python腳本執(zhí)行完成
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
}
運(yùn)行Java代碼,將會(huì)看到Python腳本的輸出結(jié)果:
Hello, Java!
2、使用ProcessBuilder類執(zhí)行Python腳本
ProcessBuilder是Java 5引入的一個(gè)用于創(chuàng)建操作系統(tǒng)進(jìn)程的類,與Runtime類相比,ProcessBuilder提供了更多的控制選項(xiàng),例如可以設(shè)置進(jìn)程的工作目錄、環(huán)境變量等。
確保你的計(jì)算機(jī)上已經(jīng)安裝了Python,并將其添加到環(huán)境變量中,創(chuàng)建一個(gè)Python腳本(test.py),內(nèi)容如下:
print("Hello, Java!")
接下來,在Java代碼中使用ProcessBuilder類執(zhí)行這個(gè)Python腳本:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class JavaCallPython {
public static void main(String[] args) {
try {
// 指定Python腳本的路徑和參數(shù)列表(如果有的話)
List command = new ArrayList<>();
command.add("python");
command.add("test.py");
// 使用ProcessBuilder類執(zhí)行Python腳本
ProcessBuilder processBuilder = new ProcessBuilder(command);
Process process = processBuilder.start();
// 獲取Python腳本的輸出結(jié)果
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待Python腳本執(zhí)行完成
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
}
運(yùn)行Java代碼,將會(huì)看到Python腳本的輸出結(jié)果:
Hello, Java!
3、使用第三方庫(kù)Jython(僅適用于Windows系統(tǒng))
Jython是一個(gè)將Python代碼集成到Java應(yīng)用程序中的庫(kù),它允許你在Java中直接調(diào)用Python代碼,而無需啟動(dòng)單獨(dú)的Python進(jìn)程,Jython目前僅支持Windows系統(tǒng),要使用Jython,你需要下載并安裝Jython庫(kù),下載地址:http://www.jython.org/downloads/jythoninstaller/jython_installer2.7.2rc1cp27nonewin32.exe(請(qǐng)根據(jù)你的系統(tǒng)和Python版本選擇合適的安裝包)。
安裝完成后,你可以在Java代碼中使用Jython庫(kù)調(diào)用Python腳本:
import org.python.util.*; // 導(dǎo)入Jython庫(kù)中的相關(guān)類和方法 import org.python.*; // 導(dǎo)入Jython庫(kù)中的Python解釋器類和對(duì)象模型類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口類等核心類和接口
分享標(biāo)題:java如何調(diào)用python
文章網(wǎng)址:http://fisionsoft.com.cn/article/cosjjes.html


咨詢
建站咨詢
