有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

给定一个类路径资源,有没有办法获取java。伊奥。有/包含它的文件对象?

如果我在类路径上有一个资源,我可以将其作为流加载,甚至还有一个URL表示。不幸的是,Url的一些实现没有正确实现lastModified

我想要的是获取类路径中某个内容的路径,然后将其解析为磁盘上的文件——如果它在jar中,那么指向jar的文件就可以了。然后,我可以从文件对象而不是URL获取lastModified,这将更有帮助


共 (1) 个答案

  1. # 1 楼答案

    粗略地说:

        URL url = this.getClass().getResource(myResource);
        String fileName;
        if (url.getProtocol().equals("file")) {
            fileName = url.getFile();        
        } else if (url.getProtocol().equals("jar")) {
            JarURLConnection jarUrl = (JarURLConnection) url.openConnection();
            fileName = jarUrl.getJarFile().getName();            
        } else {
            throw new IllegalArgumentException("Not a file");
        }
        File file = new File(fileName);
        long lastModified = file.lastModified();
    

    你应该做你想做的。你需要捕捉异常