亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? proguard.java

?? j2me 混淆包,用于混淆j2me的原代碼用的
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/* $Id: ProGuard.java,v 1.84 2004/12/11 16:35:23 eric Exp $ * * ProGuard -- shrinking, optimization, and obfuscation of Java class files. * * Copyright (c) 2002-2004 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */package proguard;import proguard.classfile.*;import proguard.classfile.attribute.*;import proguard.classfile.editor.*;import proguard.classfile.instruction.*;import proguard.classfile.util.*;import proguard.classfile.visitor.*;import proguard.io.*;import proguard.obfuscate.*;import proguard.optimize.*;import proguard.optimize.evaluation.*;import proguard.optimize.peephole.*;import proguard.shrink.*;import java.io.*;/** * Tool for shrinking, optimizing, and obfuscating Java class files. * * @author Eric Lafortune */public class ProGuard{    public static final String VERSION = "ProGuard, version 3.2";    private Configuration configuration;    private ClassPool     programClassPool = new ClassPool();    private ClassPool     libraryClassPool = new ClassPool();    /**     * Creates a new ProGuard object to process jars as specified by the given     * configuration.     */    public ProGuard(Configuration configuration)    {        this.configuration = configuration;    }    /**     * Performs all subsequent ProGuard operations.     */    public void execute() throws IOException    {        System.out.println(VERSION);        readInput();        if (configuration.shrink   ||            configuration.optimize ||            configuration.obfuscate)        {            initialize();        }        if (configuration.printSeeds != null)        {            printSeeds();        }        if (configuration.shrink)        {            shrink();        }        if (configuration.optimize)        {            optimize();            // Shrink again, if we may.            if (configuration.shrink)            {                configuration.printUsage = null;                shrink();            }        }        if (configuration.obfuscate)        {            obfuscate();        }        if (configuration.shrink   ||            configuration.optimize ||            configuration.obfuscate)        {            sortConstantPools();        }        if (configuration.programJars.hasOutput())        {            writeOutput();        }        if (configuration.dump != null)        {            dump();        }    }    /**     * Reads the input jars (or directories).     */    private void readInput() throws IOException    {        if (configuration.verbose)        {            System.out.println("Reading jars...");        }        // Check if we have at least some program jars.        if (configuration.programJars == null)        {            throw new IOException("The input is empty. You have to specify one or more '-injars' options.");        }        // Read the input program jars.        readInput("Reading program ",                  configuration.programJars,                  createDataEntryClassPoolFiller(false));        // Check if we have at least some input class files.        if (programClassPool.size() == 0)        {            throw new IOException("The input doesn't contain any class files. Did you specify the proper '-injars' options?");        }        // Read all library jars.        if (configuration.libraryJars != null)        {            readInput("Reading library ",                      configuration.libraryJars,                      createDataEntryClassPoolFiller(true));        }        // The defaultPackage option implies the allowAccessModification option.        if (configuration.defaultPackage != null)        {            configuration.allowAccessModification = true;        }    }    /**     * Creates a DataEntryReader that will decode class files and put them in     * the proper class pool.     */    private DataEntryReader createDataEntryClassPoolFiller(boolean isLibrary)    {        // Get the proper class pool.        ClassPool classPool = isLibrary ?            libraryClassPool :            programClassPool;        // Prepare a data entry reader to filter all class files,        // which are then decoded to class files by a class file reader,        // which are then put in the class pool by a class pool filler.        return            new ClassFileFilter(            new ClassFileReader(isLibrary,                                configuration.skipNonPublicLibraryClasses,                                configuration.skipNonPublicLibraryClassMembers,            new ClassPoolFiller(classPool, configuration.note)));    }    /**     * Reads all input entries from the given class path.     */    private void readInput(String          messagePrefix,                           ClassPath       classPath,                           DataEntryReader reader) throws IOException    {        readInput(messagePrefix,                  classPath,                  0,                  classPath.size(),                  reader);    }    /**     * Reads all input entries from the given section of the given class path.     */    private void readInput(String          messagePrefix,                           ClassPath       classPath,                           int             fromIndex,                           int             toIndex,                           DataEntryReader reader) throws IOException    {        for (int index = fromIndex; index < toIndex; index++)        {            ClassPathEntry entry = classPath.get(index);            if (!entry.isOutput())            {                readInput(messagePrefix, entry, reader);            }        }    }    /**     * Reads the given input class path entry.     */    private void readInput(String          messagePrefix,                           ClassPathEntry  classPathEntry,                           DataEntryReader dataEntryReader) throws IOException    {        try        {            // Create a reader that can unwrap jars, wars, ears, and zips.            DataEntryReader reader =                DataEntryReaderFactory.createDataEntryReader(messagePrefix,                                                             classPathEntry,                                                             dataEntryReader);            // Create the data entry pump.            DirectoryPump directoryPump =                new DirectoryPump(new File(classPathEntry.getName()));            // Pump the data entries into the reader.            directoryPump.pumpDataEntries(reader);        }        catch (IOException ex)        {            throw new IOException("Can't read [" + classPathEntry + "] (" + ex.getMessage() + ")");        }    }    /**     * Initializes the cross-references between all class files.     */    private void initialize() throws IOException    {        // Initialize the class hierarchy for program class files.        ClassFileHierarchyInitializer classFileHierarchyInitializer =            new ClassFileHierarchyInitializer(programClassPool,                                              libraryClassPool,                                              configuration.warn);        programClassPool.classFilesAccept(classFileHierarchyInitializer);        // Initialize the rest of the class hierarchy.        ClassFileHierarchyInitializer classFileHierarchyInitializer2 =            new ClassFileHierarchyInitializer(programClassPool,                                              libraryClassPool,                                              false);        libraryClassPool.classFilesAccept(classFileHierarchyInitializer2);        // Initialize the other class references.        ClassFileReferenceInitializer classFileReferenceInitializer =            new ClassFileReferenceInitializer(programClassPool,                                              libraryClassPool,                                              configuration.warn,                                              configuration.note);        programClassPool.classFilesAccept(classFileReferenceInitializer);        int noteCount = classFileReferenceInitializer.getNoteCount();        if (noteCount > 0)        {            System.err.println("Note: there were " + noteCount +                               " class casts of dynamically created class instances.");            System.err.println("      You might consider explicitly keeping the mentioned classes and/or");            System.err.println("      their implementations (using '-keep').");        }        int hierarchyWarningCount = classFileHierarchyInitializer.getWarningCount();        if (hierarchyWarningCount > 0)        {            System.err.println("Warning: there were " + hierarchyWarningCount +                               " unresolved references to superclasses or interfaces.");            System.err.println("         You may need to specify additional library jars (using '-libraryjars'),");            System.err.println("         or perhaps the '-dontskipnonpubliclibraryclasses' option.");        }        int referenceWarningCount = classFileReferenceInitializer.getWarningCount();        if (referenceWarningCount > 0)        {            System.err.println("Warning: there were " + referenceWarningCount +                               " unresolved references to program class members.");            System.err.println("         Your input class files appear to be inconsistent.");            System.err.println("         You may need to recompile them and try again.");        }        if ((hierarchyWarningCount > 0 ||

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品综合网| 国产精品成人免费精品自在线观看| 春色校园综合激情亚洲| 久久99国产精品久久| 欧美aaa在线| 美女在线视频一区| 老司机一区二区| 国产老妇另类xxxxx| 国产精品911| 一本到不卡精品视频在线观看| 成人av在线观| 欧美午夜视频网站| 欧美日韩视频不卡| 久久综合色鬼综合色| 久久免费的精品国产v∧| 国产欧美精品一区二区色综合朱莉| 国产日韩精品一区二区三区| 国产精品久久久久久久裸模| 亚洲视频在线一区| 亚洲电影欧美电影有声小说| 石原莉奈在线亚洲二区| 麻豆专区一区二区三区四区五区| 国产精品18久久久久久vr| 国产成人综合网| 色噜噜夜夜夜综合网| 欧美日韩精品是欧美日韩精品| 91精品国产福利| 国产欧美一区二区精品婷婷 | 喷水一区二区三区| 免费观看日韩电影| 国产精品一区二区三区99| av电影天堂一区二区在线| 色88888久久久久久影院野外 | 日本视频一区二区三区| 国产电影一区在线| 欧洲av在线精品| 久久久久久97三级| 午夜久久久影院| 成人中文字幕在线| 日韩视频永久免费| 亚洲男同性视频| 国产精品正在播放| 欧美日韩不卡视频| 亚洲三级电影网站| 精品亚洲国产成人av制服丝袜| 99在线精品视频| 精品国免费一区二区三区| 亚洲色图欧美偷拍| 国产福利一区二区三区| 日韩一区国产二区欧美三区| 亚洲情趣在线观看| 国产91精品入口| 日韩欧美一级在线播放| 亚洲自拍偷拍九九九| caoporen国产精品视频| 久久伊人中文字幕| 麻豆国产欧美一区二区三区| 欧美曰成人黄网| 久久久久久一二三区| 久久精品国产精品亚洲红杏| 欧美无人高清视频在线观看| 国产精品久久毛片av大全日韩| 青青草成人在线观看| 欧美日韩精品一区视频| 亚洲制服丝袜在线| 91高清视频免费看| 亚洲女性喷水在线观看一区| 99国产精品国产精品毛片| 久久久久久久久久久电影| 看片的网站亚洲| 欧美一区二区三区成人| 日韩国产一区二| 欧美美女视频在线观看| 无吗不卡中文字幕| 日韩欧美一区二区视频| 久久99日本精品| 精品伦理精品一区| 韩国欧美一区二区| 久久精品人人做人人综合| 国产精品一二二区| 国产精品亲子伦对白| 不卡的av网站| 亚洲精品国产精华液| 欧美日韩和欧美的一区二区| 日韩影视精彩在线| 日韩久久精品一区| 国产成人午夜99999| 国产精品美女一区二区三区 | 亚洲在线视频网站| 欧美日韩三级在线| 日韩成人一区二区| 国产视频视频一区| 不卡的电影网站| 亚洲第一福利视频在线| 精品剧情在线观看| 国产老妇另类xxxxx| 国产精品不卡一区二区三区| 91国产福利在线| 免费成人在线网站| 国产精品你懂的在线欣赏| caoporm超碰国产精品| 亚洲午夜私人影院| 精品国产亚洲在线| 91在线视频网址| 黄色精品一二区| 综合久久国产九一剧情麻豆| 7777女厕盗摄久久久| 国产传媒久久文化传媒| 亚洲成人先锋电影| 久久久精品欧美丰满| 在线观看国产日韩| 国内外精品视频| 一区二区三区在线免费观看 | 精品一区二区三区免费视频| 中日韩免费视频中文字幕| 在线免费不卡视频| 国产乱码精品一区二区三| 亚洲国产成人av网| 中文字幕免费不卡| 欧美一级一级性生活免费录像| www.在线成人| 蜜桃在线一区二区三区| 亚洲精品日韩综合观看成人91| 精品精品欲导航| 欧美日韩精品一区二区三区四区| 成人精品一区二区三区四区 | 亚洲精品视频在线观看网站| 久久综合久久鬼色中文字| 欧美专区亚洲专区| www.日韩精品| 国产精品538一区二区在线| 一区二区三区欧美在线观看| 国产色综合久久| 精品国产伦一区二区三区观看体验| 91婷婷韩国欧美一区二区| 国产一区91精品张津瑜| 青青草国产精品亚洲专区无| 一区二区欧美精品| 成人欧美一区二区三区小说 | 亚洲品质自拍视频网站| 久久久噜噜噜久久中文字幕色伊伊 | 日本系列欧美系列| 亚洲高清免费在线| 亚洲伦理在线精品| 亚洲视频一区二区在线| 国产精品国产三级国产| 国产精品美女久久福利网站| 国产婷婷色一区二区三区四区| 欧美r级电影在线观看| 日韩一区二区免费在线电影| 欧美一区二区视频在线观看2020| 在线免费观看不卡av| 欧美亚洲国产一区二区三区| 色国产精品一区在线观看| 色婷婷国产精品久久包臀| 91论坛在线播放| 在线精品视频小说1| 欧美日韩国产精选| 欧美日韩高清不卡| 欧美久久久久中文字幕| 欧美一区二区三区视频在线| 91精品国产麻豆| 久久婷婷综合激情| 国产精品每日更新| 亚洲免费观看高清完整版在线| 一个色综合av| 丝袜美腿一区二区三区| 久草这里只有精品视频| 国产成人精品三级麻豆| 97精品超碰一区二区三区| 欧美视频在线观看一区二区| 欧美精品tushy高清| 亚洲精品一区在线观看| 国产精品私人自拍| 亚洲国产视频在线| 精品在线免费视频| 粉嫩蜜臀av国产精品网站| 91美女在线视频| 欧美一区二区精品久久911| 国产喷白浆一区二区三区| 亚洲男人的天堂网| 男女男精品视频网| 成人sese在线| 制服丝袜激情欧洲亚洲| 国产精品视频免费看| 亚洲成人免费观看| 国产69精品久久久久777| 欧美性欧美巨大黑白大战| 精品国产精品一区二区夜夜嗨| 国产精品久久久一本精品| 日韩精品一二三四| 国产成人aaa| 欧美另类z0zxhd电影| 欧美国产一区二区在线观看| 一区二区在线看| 韩日欧美一区二区三区| 欧美综合亚洲图片综合区| 久久久亚洲精品石原莉奈| 亚洲电影第三页| 91蝌蚪porny成人天涯|