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

📄 diagnostics.java

📁 Use the links below to download a source distribution of Ant from one of our mirrors. It is good pra
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     */    private static void doReportSystemProperties(PrintStream out) {        Properties sysprops = null;        try {            sysprops = System.getProperties();        } catch (SecurityException  e) {            ignoreThrowable(e);            out.println("Access to System.getProperties() blocked "                    + "by a security manager");        }        for (Enumeration keys = sysprops.propertyNames();            keys.hasMoreElements();) {            String key = (String) keys.nextElement();            String value = getProperty(key);            out.println(key + " : " + value);        }    }    /**     * Get the value of a system property. If a security manager     * blocks access to a property it fills the result in with an error     * @param key     * @return the system property's value or error text     * @see #ERROR_PROPERTY_ACCESS_BLOCKED     */    private static String getProperty(String key) {        String value;        try {            value = System.getProperty(key);        } catch (SecurityException e) {            value = ERROR_PROPERTY_ACCESS_BLOCKED;        }        return value;    }    /**     * Report the content of ANT_HOME/lib directory     * @param out the stream to print the content to     */    private static void doReportAntProperties(PrintStream out) {        Project p = new Project();        p.initProperties();        out.println(MagicNames.ANT_VERSION + ": " + p.getProperty(MagicNames.ANT_VERSION));        out.println(MagicNames.ANT_JAVA_VERSION + ": "                    + p.getProperty(MagicNames.ANT_JAVA_VERSION));        out.println(MagicNames.ANT_LIB + ": " + p.getProperty(MagicNames.ANT_LIB));        out.println(MagicNames.ANT_HOME + ": " + p.getProperty(MagicNames.ANT_HOME));    }    /**     * Report the content of ANT_HOME/lib directory     * @param out the stream to print the content to     */    private static void doReportAntHomeLibraries(PrintStream out) {        out.println(MagicNames.ANT_HOME + ": " + System.getProperty(MagicNames.ANT_HOME));        File[] libs = listLibraries();        printLibraries(libs, out);    }    /**     * Report the content of ~/.ant/lib directory     *     * @param out the stream to print the content to     */    private static void doReportUserHomeLibraries(PrintStream out) {        String home = System.getProperty(Launcher.USER_HOMEDIR);        out.println("user.home: " + home);        File libDir = new File(home, Launcher.USER_LIBDIR);        File[] libs = listJarFiles(libDir);        printLibraries(libs, out);    }    /**     * list the libraries     * @param libs array of libraries (can be null)     * @param out output stream     */    private static void printLibraries(File[] libs, PrintStream out) {        if (libs == null) {            out.println("No such directory.");            return;        }        for (int i = 0; i < libs.length; i++) {            out.println(libs[i].getName()                    + " (" + libs[i].length() + " bytes)");        }    }    /**     * Call org.apache.env.Which if available     * @param out the stream to print the content to.     */    private static void doReportWhich(PrintStream out) {        Throwable error = null;        try {            Class which = Class.forName("org.apache.env.Which");            Method method                = which.getMethod("main", new Class[]{String[].class});            method.invoke(null, new Object[]{new String[]{}});        } catch (ClassNotFoundException e) {            out.println("Not available.");            out.println("Download it at http://xml.apache.org/commons/");        } catch (InvocationTargetException e) {            error = e.getTargetException() == null ? e : e.getTargetException();        } catch (Throwable e) {            error = e;        }        // report error if something weird happens...this is diagnostic.        if (error != null) {            out.println("Error while running org.apache.env.Which");            error.printStackTrace();        }    }    /**     * Create a report about non-available tasks that are defined in the     * mapping but could not be found via lookup. It might generally happen     * because Ant requires multiple libraries to compile and one of them     * was missing when compiling Ant.     * @param out the stream to print the tasks report to     * <tt>null</tt> for a missing stream (ie mapping).     */    private static void doReportTasksAvailability(PrintStream out) {        InputStream is = Main.class.getResourceAsStream(                MagicNames.TASKDEF_PROPERTIES_RESOURCE);        if (is == null) {            out.println("None available");        } else {            Properties props = new Properties();            try {                props.load(is);                for (Enumeration keys = props.keys(); keys.hasMoreElements();) {                    String key = (String) keys.nextElement();                    String classname = props.getProperty(key);                    try {                        Class.forName(classname);                        props.remove(key);                    } catch (ClassNotFoundException e) {                        out.println(key + " : Not Available "                                + "(the implementation class is not present)");                    } catch (NoClassDefFoundError e) {                        String pkg = e.getMessage().replace('/', '.');                        out.println(key + " : Missing dependency " + pkg);                    } catch (LinkageError e) {                        out.println(key + " : Initialization error");                    }                }                if (props.size() == 0) {                    out.println("All defined tasks are available");                } else {                    out.println("A task being missing/unavailable should only "                            + "matter if you are trying to use it");                }            } catch (IOException e) {                out.println(e.getMessage());            }        }    }    /**     * tell the user about the XML parser     * @param out     */    private static void doReportParserInfo(PrintStream out) {        String parserName = getXmlParserName();        String parserLocation = getXMLParserLocation();        printParserInfo(out, "XML Parser", parserName, parserLocation);        printParserInfo(out, "Namespace-aware parser",                getNamespaceParserName(),                getNamespaceParserLocation());    }    private static void printParserInfo(PrintStream out,                                        String parserType,                                        String parserName,                                        String parserLocation) {        if (parserName == null) {            parserName = "unknown";        }        if (parserLocation == null) {            parserLocation = "unknown";        }        out.println(parserType + " : " + parserName);        out.println(parserType + " Location: " + parserLocation);    }    /**     * try and create a temp file in our temp dir; this     * checks that it has space and access.     * We also do some clock reporting.     * @param out     */    private static void doReportTempDir(PrintStream out) {        String tempdir = System.getProperty("java.io.tmpdir");        if (tempdir == null) {            out.println("Warning: java.io.tmpdir is undefined");            return;        }        out.println("Temp dir is " + tempdir);        File tempDirectory = new File(tempdir);        if (!tempDirectory.exists()) {            out.println("Warning, java.io.tmpdir directory does not exist: "                    + tempdir);            return;        }        //create the file        long now = System.currentTimeMillis();        File tempFile = null;        FileOutputStream fileout = null;        try {            tempFile = File.createTempFile("diag", "txt", tempDirectory);            //do some writing to it            fileout = new FileOutputStream(tempFile);            byte[] buffer = new byte[KILOBYTE];            for (int i = 0; i < TEST_FILE_SIZE; i++) {                fileout.write(buffer);            }            fileout.close();            fileout = null;            long filetime = tempFile.lastModified();            tempFile.delete();            out.println("Temp dir is writeable");            long drift = filetime - now;            out.println("Temp dir alignment with system clock is " + drift + " ms");            if (Math.abs(drift) > BIG_DRIFT_LIMIT) {                out.println("Warning: big clock drift -maybe a network filesystem");            }        } catch (IOException e) {            ignoreThrowable(e);            out.println("Failed to create a temporary file in the temp dir "                + tempdir);            out.println("File  " + tempFile + " could not be created/written to");        } finally {            FileUtils.close(fileout);            if (tempFile != null && tempFile.exists()) {                tempFile.delete();            }        }    }    /**     * Report locale information     * @param out stream to print to     */    private static void doReportLocale(PrintStream out) {        //calendar stuff.        Calendar cal = Calendar.getInstance();        TimeZone tz = cal.getTimeZone();        out.println("Timezone " + tz.getDisplayName()                + " offset=" + tz.getOffset(cal.get(Calendar.ERA),                        cal.get(Calendar.YEAR),                        cal.get(Calendar.MONTH),                        cal.get(Calendar.DAY_OF_MONTH),                        cal.get(Calendar.DAY_OF_WEEK),                        ((cal.get(Calendar.HOUR_OF_DAY) * MINUTES_PER_HOUR                         + cal.get(Calendar.MINUTE)) * SECONDS_PER_MINUTE                         + cal.get(Calendar.SECOND)) * SECONDS_PER_MILLISECOND                         + cal.get(Calendar.MILLISECOND)));    }    /**     * print a property name="value" pair if the property is set;     * print nothing if it is null     * @param out stream to print on     * @param key property name     */    private static void printProperty(PrintStream out, String key) {        String value = getProperty(key);        if (value != null) {            out.print(key);            out.print(" = ");            out.print('"');            out.print(value);            out.println('"');        }    }    /**     * Report proxy information     *     * @param out stream to print to     * @since Ant1.7     */    private static void doReportProxy(PrintStream out) {        printProperty(out, ProxySetup.HTTP_PROXY_HOST);        printProperty(out, ProxySetup.HTTP_PROXY_PORT);        printProperty(out, ProxySetup.HTTP_PROXY_USERNAME);        printProperty(out, ProxySetup.HTTP_PROXY_PASSWORD);        printProperty(out, ProxySetup.HTTP_NON_PROXY_HOSTS);        printProperty(out, ProxySetup.HTTPS_PROXY_HOST);        printProperty(out, ProxySetup.HTTPS_PROXY_PORT);        printProperty(out, ProxySetup.HTTPS_NON_PROXY_HOSTS);        printProperty(out, ProxySetup.FTP_PROXY_HOST);        printProperty(out, ProxySetup.FTP_PROXY_PORT);        printProperty(out, ProxySetup.FTP_NON_PROXY_HOSTS);        printProperty(out, ProxySetup.SOCKS_PROXY_HOST);        printProperty(out, ProxySetup.SOCKS_PROXY_PORT);        printProperty(out, ProxySetup.SOCKS_PROXY_USERNAME);        printProperty(out, ProxySetup.SOCKS_PROXY_PASSWORD);        if (JavaEnvUtils.getJavaVersionNumber() < 15) {            return;        }        printProperty(out, ProxySetup.USE_SYSTEM_PROXIES);        final String proxyDiagClassname            = "org.apache.tools.ant.util.java15.ProxyDiagnostics";        try {            Class proxyDiagClass = Class.forName(proxyDiagClassname);            Object instance = proxyDiagClass.newInstance();            out.println("Java1.5+ proxy settings:");            out.println(instance.toString());        } catch (ClassNotFoundException e) {            //not included, do nothing        } catch (IllegalAccessException e) {            //not included, do nothing        } catch (InstantiationException e) {            //not included, do nothing        } catch (NoClassDefFoundError e) {            // not included, to nothing        }    }}

⌨️ 快捷键说明

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