1、Win+R打开运行窗口输入“cmd”,点击【确定】或者回车键。
2、python -V查看Python版本(注意:python空格-V,V大写) 或输入python --version查看。
若没有python环境去官网下载: https://www.python.org/downloads/windows/
3、编写.py文件
from datetime import datetime
import sys
def calculate_age(id_number):
# 假设生日信息在身份证号的第七位到第十四位
birthday_str = id_number[6:14]
# 将生日字符串转换为日期格式
birthday = datetime.strptime(birthday_str, '%Y%m%d')
# 获取当前日期
current_date = datetime.now()
# 计算年龄
age = current_date.year - birthday.year - ((current_date.month, current_date.day) < (birthday.month, birthday.day))
return age
if __name__ == "__main__":
# 获取命令行参数
if len(sys.argv) != 2:
print("请提供身份证号码作为参数")
else:
id_number = sys.argv[1]
age = calculate_age(id_number)
print(age) # 直接输出年龄信息
注:该文件我命名的js.py,可自行更改。
4、编写Java文件
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class CallPythonScript {
public static void main(String[] args) {
try {
String pythonScriptPath = "C:/tools/PythonProject/test/js.py"; // 替换为你的 Python 脚本路径
String idNumber = "440308199001011234"; // 替换为你的身份证号码
String pythonInterpreter = "C:/environment/Python/python.exe"; // 将路径替换为你的 Python 解释器路径
ProcessBuilder pb = new ProcessBuilder(pythonInterpreter, pythonScriptPath, idNumber);
pb.redirectErrorStream(true); // 将错误流合并到输出流
Process process = pb.start();
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 脚本执行完毕,退出码:" + exitCode);
//打印错误信息
BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String errorLine;
//打印错误信息
while ((errorLine = errorReader.readLine()) != null) {
System.out.println("Error: " + errorLine); // 输出来自Python脚本的错误信息
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}