python自動配置java環境(linux)

# -*- coding:utf8 -*-
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 文件名
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章