【问题标题】:Migration code from 1.6 jdk to 11 jdk problem with sun.net.www.protocol.filesun.net.www.protocol.file 将代码从 1.6 jdk 迁移到 11 jdk 问题
【发布时间】:2021-01-12 08:18:46
【问题描述】:

我在迁移使用 sun.net.*sun.net.www.protocol.file.FileURLConnection 的旧代码时遇到问题 Ant 无法在 jdk 11 上构建项目,因为 FileURLConnection 来自版本 8/9 的基础包内部类。 FileURLCONnection 用于检查返回类的实例,所以我需要很好地了解如何在不破坏逻辑的情况下替换这个片段(下面的片段)。

connection instanceof FileURLConnection
    for (URL url = null; resources.hasMoreElements()
                && ((url = resources.nextElement()) != null); ) {
                try {
                    connection = url.openConnection();

                    if (connection instanceof JarURLConnection) {
                        checkJarFile((JarURLConnection) connection, pckgname,
                            classes);
                    } else if (connection instanceof FileURLConnection) {
                        try {
                            checkDirectory(
                                new File(URLDecoder.decode(url.getPath(),
                                    "UTF-8")), pckgname, classes);
                        } catch (final UnsupportedEncodingException ex) {
                            throw new ClassNotFoundException(
                                pckgname
                                    + " does not appear to be a valid package (Unsupported encoding)",
                                ex);
                        }
                    } else
                        throw new ClassNotFoundException(pckgname + " ("
                            + url.getPath()
                            + ") does not appear to be a valid package");
                } catch (final IOException ioex) {
                    throw new ClassNotFoundException(
                        "IOException was thrown when trying to get all resources for "
                            + pckgname, ioex);
                }
            }

【问题讨论】:

    标签: java migration java-11 java-6


    【解决方案1】:

    你应该可以替换:

    connection instanceof FileURLConnection
    

    作者:

    "file".equals(url.getProtocol())
    

    【讨论】:

    • 谢谢!你是我的英雄:D
    猜你喜欢
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多