/ 前言 /
我们在自动化部署流程中通常会碰到如何在一台纯净的服务器上面自动配置JRE, 今天给大家分享一下如何使用Python脚本运行shell配置JRE, 和无窗启动jar包, JDK的配置同理
/ 配置JRE /
# -*- coding: UTF-8 -*-
import sys
import os
import mod_config
import subprocess
# 配置jre
def config_jre():
jre_path = mod_config.getConfig('linux', 'jrePath')
try:
print("配置JRE环境ing")
os.system(" echo 'export JRE_HOME=" + jre_path + "/' >>/etc/profile")
os.system(' echo "PATH=\$JRE_HOME/bin:\$PATH" >> /etc/profile')
except:
print("JRE环境配置处出现问题,安装终止")
sys.exit(1)
print("JRE install success!")
subprocess.Popen('bash -c source /etc/profile; ls',shell=True)
p = subprocess.Popen('java -version', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
is_success = False
while p.poll() is None:
line = p.stdout.readline()
line = line.strip()
try:
if 'Java(TM)' in line.decode('utf-8'):
is_success = True
break
except:
print('JRE安装失败,请重新运行JRE安装包')
if is_success:
print('JRE安装成功!')
else:
print('JRE安装失败,请重新运行JRE安装包')
if __name__ == '__main__':
config_jre()
输出
JRE install success!
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
/ 启动jar包 /
如果希望启动时无弹窗将.py
修改为.pyw
即可, 运行方式一致
import os
import platform
import subprocess
operating = platform.system()
# -Dspring.config.location是用于指定启动jar包时的外部配置文件
line = 'java -jar -Dspring.config.location=application.properties xxx.jar > log.log'
if operating == 'Linux':
# 跳转到jar包所在目录
os.chdir('script/java-script')
line = 'nohup ' + line + ' &'
elif operating == 'Windows':
os.chdir(r'script\java-script')
line = line
else:
print("Can't Work On your Platform Now!")
subprocess.Popen(line, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)