在Java中調用Python腳本,可以通過以下兩種主要方法實現:
Java的Runtime
類提供了一個簡單的方法來執行外部命令,包括Python腳本。以下是一個示例代碼:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class JavaCallPython {
public static void main(String[] args) {
try {
// 指定Python腳本的路徑
String pythonScriptPath = "/path/to/your/python_script.py";
// 使用Runtime類執行Python腳本
Process process = Runtime.getRuntime().exec("python " + pythonScriptPath);
// 讀取Python腳本的輸出
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待Python腳本執行完成
int exitCode = process.waitFor();
System.out.println("Python script exited with code " + exitCode);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在這個示例中,你需要將/path/to/your/python_script.py
替換為你的Python腳本的實際路徑。
Jython是一個將Python代碼集成到Java應用程序中的庫。它允許你在Java程序中直接運行Python代碼。以下是一個使用Jython的示例:
首先,你需要下載并安裝Jython庫。你可以從Jython官方網站下載最新版本的Jython JAR文件。
然后,你可以使用以下代碼在Java程序中調用Python腳本:
import org.python.core.PyObject;
import org.python.util.PythonInterpreter;
public class JavaCallPython {
public static void main(String[] args) {
try (PythonInterpreter interpreter = new PythonInterpreter()) {
// 導入Python腳本
interpreter.execfile("/path/to/your/python_script.py");
// 調用Python腳本中的函數或變量
PyObject functionName = interpreter.get("function_name");
PyObject result = functionName.__call__();
// 將結果轉換為Java類型(如果需要)
// ...
// 打印結果
System.out.println(result);
}
}
}
在這個示例中,你需要將/path/to/your/python_script.py
替換為你的Python腳本的實際路徑,并將function_name
替換為你想要調用的Python函數名。
注意:在使用Jython時,你需要確保你的Python腳本與Java程序在同一環境中,或者將Python腳本的路徑添加到Java的類路徑中。