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

📄 proguardgui.java

📁 ProGuard 是一个免费的 Java类文件的压缩
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            configuration.assumeNoSideEffects = noSideEffectMethods;        }        // Collect the "why are you keeping" options.        configuration.whyAreYouKeeping = whyAreYouKeepingPanel.getClassSpecifications();        // Get the other options.        configuration.shrink                           = shrinkCheckBox                          .isSelected();        configuration.printUsage                       = printUsageCheckBox                      .isSelected() ? new File(printUsageTextField                       .getText()) : null;        configuration.optimize                         = optimizeCheckBox                        .isSelected();        configuration.optimizationPasses               = ((SpinnerNumberModel)optimizationPassesSpinner.getModel()).getNumber().intValue();        configuration.allowAccessModification          = allowAccessModificationCheckBox         .isSelected();        configuration.obfuscate                        = obfuscateCheckBox                       .isSelected();        configuration.printMapping                     = printMappingCheckBox                    .isSelected() ? new File(printMappingTextField                                .getText()) : null;        configuration.applyMapping                     = applyMappingCheckBox                    .isSelected() ? new File(applyMappingTextField                                .getText()) : null;        configuration.obfuscationDictionary            = obfuscationDictionaryCheckBox           .isSelected() ? new File(obfuscationDictionaryTextField                       .getText()) : null;        configuration.overloadAggressively             = overloadAggressivelyCheckBox            .isSelected();        configuration.useUniqueClassMemberNames        = useUniqueClassMemberNamesCheckBox       .isSelected();        configuration.useMixedCaseClassNames           = useMixedCaseClassNamesCheckBox          .isSelected();        configuration.flattenPackageHierarchy          = flattenPackageHierarchyCheckBox         .isSelected() ? ClassUtil.externalClassName(flattenPackageHierarchyTextField  .getText()) : null;        configuration.repackageClasses                 = repackageClassesCheckBox                .isSelected() ? ClassUtil.externalClassName(repackageClassesTextField         .getText()) : null;        configuration.keepAttributes                   = keepAttributesCheckBox                  .isSelected() ? ListUtil.commaSeparatedList(keepAttributesTextField           .getText()) : null;        configuration.newSourceFileAttribute           = newSourceFileAttributeCheckBox          .isSelected() ? newSourceFileAttributeTextField                               .getText()  : null;        configuration.adaptResourceFileNames           = adaptResourceFileNamesCheckBox          .isSelected() ? ListUtil.commaSeparatedList(adaptResourceFileNamesTextField   .getText()) : null;        configuration.adaptResourceFileContents        = adaptResourceFileContentsCheckBox       .isSelected() ? ListUtil.commaSeparatedList(adaptResourceFileContentsTextField.getText()) : null;        configuration.preverify                        = preverifyCheckBox                       .isSelected();        configuration.microEdition                     = microEditionCheckBox                    .isSelected();        configuration.targetClassVersion               = targetCheckBox                          .isSelected() ? ClassUtil.internalClassVersion(targetComboBox.getSelectedItem().toString()) : 0;        configuration.verbose                          = verboseCheckBox                         .isSelected();        configuration.note                             = noteCheckBox                            .isSelected();        configuration.warn                             = warnCheckBox                            .isSelected();        configuration.ignoreWarnings                   = ignoreWarningsCheckBox                  .isSelected();        configuration.skipNonPublicLibraryClasses      = skipNonPublicLibraryClassesCheckBox     .isSelected();        configuration.skipNonPublicLibraryClassMembers = skipNonPublicLibraryClassMembersCheckBox.isSelected();        configuration.lastModified                     = forceProcessingCheckBox                 .isSelected() ? Long.MAX_VALUE : System.currentTimeMillis();        configuration.printSeeds                       = printSeedsCheckBox                      .isSelected() ? new File(printSeedsTextField                                .getText()) : null;        configuration.printConfiguration               = printConfigurationCheckBox              .isSelected() ? new File(printConfigurationTextField                        .getText()) : null;        configuration.dump                             = dumpCheckBox                            .isSelected() ? new File(dumpTextField                                      .getText()) : null;        return configuration;    }    /**     * Looks in the given list for a class specification that is identical to     * the given template. Returns true if it is found, and removes the matching     * class specification as a side effect.     */    private boolean findClassSpecification(ClassSpecification classSpecificationTemplate,                                           List                classSpecifications)    {        if (classSpecifications == null)        {            return false;        }        for (int index = 0; index < classSpecifications.size(); index++)        {            if (classSpecificationTemplate.equals(classSpecifications.get(index)))            {                // Remove the matching option as a side effect.                classSpecifications.remove(index);                return true;            }        }        return false;    }    /**     * Returns the subset of the given list of keep specifications, with     * matching shrinking flag.     */    private List filteredKeepSpecifications(List    keepSpecifications,                                            boolean allowShrinking)    {        List filteredKeepSpecifications = new ArrayList();        for (int index = 0; index < keepSpecifications.size(); index++)        {            KeepSpecification keepSpecification =                (KeepSpecification)keepSpecifications.get(index);            if (keepSpecification.allowShrinking == allowShrinking)            {                filteredKeepSpecifications.add(keepSpecification);            }        }        return filteredKeepSpecifications;    }    /**     * Looks in the given list for keep specifications that match the given     * template. Returns a comma-separated string of class names from     * matching keep specifications, and removes the matching keep     * specifications as a side effect.     */    private String findMatchingKeepSpecifications(KeepSpecification keepSpecificationTemplate,                                                  List              keepSpecifications)    {        if (keepSpecifications == null)        {            return null;        }        StringBuffer buffer = null;        for (int index = 0; index < keepSpecifications.size(); index++)        {            KeepSpecification listedKeepSpecification =                (KeepSpecification)keepSpecifications.get(index);            String className = listedKeepSpecification.className;            keepSpecificationTemplate.className = className;            if (keepSpecificationTemplate.equals(listedKeepSpecification))            {                if (buffer == null)                {                    buffer = new StringBuffer();                }                else                {                    buffer.append(',');                }                buffer.append(className == null ? "*" : ClassUtil.externalClassName(className));                // Remove the matching option as a side effect.                keepSpecifications.remove(index--);            }        }        return buffer == null ? null : buffer.toString();    }    /**     * Returns a class specification or keep specification, based on the given     * template and the class name to be filled in.     */    private ClassSpecification classSpecification(ClassSpecification classSpecificationTemplate,                                                  String             className)    {        // Create a copy of the template.        ClassSpecification classSpecification =            (ClassSpecification)classSpecificationTemplate.clone();        // Set the class name in the copy.        classSpecification.className =            className.equals("") ||            className.equals("*") ?                null :                ClassUtil.internalClassName(className);        // Return the modified copy.        return classSpecification;    }    // Methods and internal classes related to actions.    /**     * Loads the given ProGuard configuration into the GUI.     */    private void loadConfiguration(File file)    {        // Set the default directory and file in the file choosers.        configurationChooser.setSelectedFile(file.getAbsoluteFile());        fileChooser.setCurrentDirectory(file.getAbsoluteFile().getParentFile());        try        {            // Parse the configuration file.            ConfigurationParser parser = new ConfigurationParser(file);            Configuration configuration = new Configuration();            try            {                parser.parse(configuration);                // Let the GUI reflect the configuration.                setProGuardConfiguration(configuration);            }            catch (ParseException ex)            {                JOptionPane.showMessageDialog(getContentPane(),                                              msg("cantParseConfigurationFile", file.getPath()),                                              msg("warning"),                                              JOptionPane.ERROR_MESSAGE);            }            finally            {                parser.close();            }        }        catch (IOException ex)        {            JOptionPane.showMessageDialog(getContentPane(),                                          msg("cantOpenConfigurationFile", file.getPath()),                                          msg("warning"),                                          JOptionPane.ERROR_MESSAGE);        }    }    /**     * Loads the given ProGuard configuration into the GUI.     */    private void loadConfiguration(URL url)    {        try        {            // Parse the configuration file.            ConfigurationParser parser = new ConfigurationParser(url);            Configuration configuration = new Configuration();            try            {                parser.parse(configuration);                // Let the GUI reflect the configuration.                setProGuardConfiguration(configuration);            }            catch (ParseException ex)            {                JOptionPane.showMessageDialog(getContentPane(),                                              msg("cantParseConfigurationFile", url),                                              msg("warning"),                                              JOptionPane.ERROR_MESSAGE);            }            finally            {                parser.close();            }        }        catch (IOException ex)        {            JOptionPane.showMessageDialog(getContentPane(),                                          msg("cantOpenConfigurationFile", url),                                          msg("warning"),                                          JOptionPane.ERROR_MESSAGE);        }    }    /**     * Saves the current ProGuard configuration to the given file.     */    private void saveConfiguration(File file)    {        try        {            // Save the configuration file.            ConfigurationWriter writer = new ConfigurationWriter(file);            writer.write(getProGuardConfiguration());            writer.close();        }        catch (Exception ex)        { 

⌨️ 快捷键说明

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