⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tmng.java

📁 请认真阅读您的文件包然后写出其具体功能(至少要20个字)。
💻 JAVA
字号:
package com.richeninfo.license;
import java.io.*;
import java.util.*;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: </p>
 * @author xiaolie
 * @version 1.0
 */

public class TMng implements Runnable, Serializable{
    private long installTime;
    private long passTime;
    private boolean terminated = false;
    private String pubKey;
    private String name;
    //private static TMng mng;
    private static Hashtable mngTable;

    private TMng(String name) {
        installTime = System.currentTimeMillis();
        this.name = name;
        pubKey = createPublicKey();
    }

    public String getPubKey() {
        return pubKey;
    }

    private String createPublicKey() {
           Random random = new Random(System.currentTimeMillis());
           StringBuffer sb = new StringBuffer(16);
           for (int i = 0; i < 16; i++) {
               int k = random.nextInt();
               k = Math.abs(k);
               byte b = (byte)(k % 25 + 65);
               char c = (char)b;
               sb.append(c);
           }
           return sb.toString();
    }

    public String toString() {
        return "InstallTime:" + installTime + " passTime:" + passTime + " pubKey=" + pubKey;
    }

    public static TMng getTMng(String name) throws Exception{
        TMng mng = null;
        if (mngTable == null) {
            try {
                FileInputStream istream = new FileInputStream(LicenseKeyPair.properties.getProperty("java.home") + "/" + "LICENSE.en");
                try {
                    ObjectInputStream p = new ObjectInputStream(istream);
                    mngTable = (Hashtable)p.readObject();
                } finally {
                    istream.close();
                }
            } catch (InvalidClassException ie) {
                File f= new File(LicenseKeyPair.properties.getProperty("java.home") + "/" + "LICENSE.en");
                if (f.exists()) {
                    f.delete();
                }
                mngTable = new Hashtable();
                mng = new TMng(name);
                mngTable.put(name, mng);
            } catch (FileNotFoundException e) {
                mngTable = new Hashtable();
                mng = new TMng(name);
                mngTable.put(name, mng);
            }
        }
        if (mngTable.containsKey(name)) {
            mng = (TMng)mngTable.get(name);
        } else {
            mng = new TMng(name);
            mngTable.put(name, mng);
        }
        if (System.currentTimeMillis() < mng.installTime) {
            mng.installTime = System.currentTimeMillis();
        }
        if ((System.currentTimeMillis() - mng.installTime) > mng.passTime) {
            mng.passTime = System.currentTimeMillis() - mng.installTime;
        }
        try {
            mng.persist();
        } catch (Exception e) {
            System.err.println(e.toString());
            throw e;
        }
        Thread th = new Thread(mng);
        th.setDaemon(true);
        th.start();
        return mng;
    }

    public void persist() throws Exception{
        String d = LicenseKeyPair.properties.getProperty("java.home") + "/" + "LICENSE.en";
        FileOutputStream ostream = new FileOutputStream(d, false);
        ObjectOutputStream p = new ObjectOutputStream(ostream);
        p.writeObject(mngTable);
        p.flush();
        ostream.close();
    }

    public void run() {
        while (!terminated) {
            try {
                Thread.currentThread().sleep(600000);
            } catch (Exception e) {
            }
            passTime += 600000;
            try {
                persist();
            } catch (Exception e) {
                e.printStackTrace(System.out);
            }
        }
    }

    public long getPassTime() {
        if ((System.currentTimeMillis() - installTime) > passTime) {
            passTime = System.currentTimeMillis() - installTime;
            try {
                persist();
            } catch (Exception e) {
                e.printStackTrace(System.err);
            }
        }
        return passTime;
    }

    void bd() throws Exception {
        passTime = 0;
        persist();
    }

    public static void main(String[] args) throws Exception {
        if (args.length == 0) {
            System.out.println("Usage: java com.richeninfo.license.TMng productName");
            return;
        }
        //TMng mng = TMng.getTMng("SGrid");
        TMng mng = TMng.getTMng(args[0]);
        System.out.println(mng.toString());

    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -