import requests
import gzip
import tarfile
import os
import shutil
import getpass
import time
url = "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz"
filename = "jdk.tar.gz"
class JavaEnv:
def __init__(self,url,filename):
self.url = url
self.filename =filename
def downloadJdk(self):
print("downloading jdk .....")
try:
r = requests.get(self.url)
with open(self.filename,"wb") as jdk:
jdk.write(r.content)
except Exception as e:
print(e)
jdk.close()
time.sleep(1)
def ungzip(self):
mtarfile = self.filename.replace(".gz","")
tmpfile = gzip.GzipFile(self.filename)
try:
with open(mtarfile,"wb") as tfile:
tfile.write(tmpfile.read())
except Exception as e:
print(e)
tfile.close()
def untar(self):
mtarfile = self.filename.replace(".gz","")
tar = tarfile.open(mtarfile)
filenames = tar.getnames()
if os.path.isdir(mtarfile.replace(".tar","")+"_files"):
pass
else:
os.mkdir(mtarfile.replace(".tar","")+"_files")
for name in filenames:
try:
tar.extract(name,mtarfile.replace(".tar","")+"_files")
except Exception as e:
print(e)
tar.close()
def configjdk(self):
dir = self.filename.replace(".gz","").replace(".tar","")+"_files"
dirs = os.listdir(dir)
for d in dirs:
realdir = d
try:
user = getpass.getuser()
shutil.copytree("./"+dir+"/"+realdir,"/home/"+user+"/"+realdir)
shutil.rmtree("./"+dir)
except Exception as e:
print(e)
try:
with open("/home/"+user+"/.profile","a+") as profile:
profile.write("export JAVA_HOME=/home/"+user+"/"+realdir)
profile.write("\n")
profile.write("export PATH=$PATH:/home/"+user+"/"+realdir+"/bin")
except Exception as e:
print(e)
profile.close()
os.system("source /home/"+user+"/.profile")
def clean(self):
try:
os.remove(self.filename)
os.remove(self.filename.replace(".gz",""))
except Exception as e:
print(e)
env = JavaEnv(url,filename)
env.downloadJdk()
env.ungzip()
env.untar()
env.clean()
env.configjdk()
1.如何使用:
配置好python3的環境
pip3 install requests
python3 文件名