给定一个类路径资源,有没有办法获取具有/包含它的 java.io.File 对象?

2023-11-21

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

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


大致说来:

    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();

应该做你想做的事。您将需要捕获 IOException。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

给定一个类路径资源,有没有办法获取具有/包含它的 java.io.File 对象? 的相关文章

随机推荐

  • 如何在 Windows 机器上使用 nginx 运行 django?

    我有一个 Django 项目 我已经安装了nginx服务器 我想在 Windows 机器上运行 nginx 和 django 我尝试过几个博客Nginx Django Uwsgi 但它们都需要 uwsgi 但 uwsgi 未安装在 Wind
  • 代码生成器、ORM、存储过程

    这些软件架构在哪些领域表现出色或失败 哪些关键要求会促使您选择其中一个 请假设您有可用的开发人员 他们可以完成良好的面向对象代码以及良好的数据库开发 另外 请避免圣战 所有三种技术都有优点和缺点 我感兴趣的是最适合在哪里使用哪种技术 这些工
  • 使用自签名证书在 iOS 9 中发出 HTTPS 请求 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我想使用自签名证书向自定义服务器发出 HTTPS 请求 我正在使用 NSURLConnection 类并处理身份验证质询 但总是在控制台中收到错误消息 NSURLSessio
  • 错误:该 IP 地址无法在 Django 中分配给?

    我正在运行 Debian 6 stable 并且我正在尝试使用本地运行 Django manage py runserver命令 这就是我得到的 Validating models 0 errors found Django version
  • 删除/替换 bash 中的 html 标签

    我有一个文件 其中包含以下行 li b Some Text b More Text li 我想删除 html 标签并替换用破折号标记 所以它变成这样 Some Text More Text 我正在尝试使用 sed 但找不到正确的正则表达式组
  • Google Sheets API v4 接收公共 Feed 的 HTTP 401 响应

    在针对公共 即 发布到网络 并与 网络上的任何人 共享 电子表格运行时 我没有运气得到 Google Sheets API v4 的响应 相关文件指出 如果请求不需要授权 例如请求公共数据 那么应用程序必须提供 API 密钥或 OAuth
  • jQuery 选择器与过滤器()

    给出以下标记 ul class list li first item li li class item second item li li third item li ul 这两个表达式选择第二个里哪一个更好 ul li item or u
  • 如何在不激活其他应用程序窗口的情况下将其置于前面?

    我想将一个窗口带到前面 来自其他应用程序 目前我正在使用 SetWindowPos hwnd GetForegroundWindow 0 0 0 0 SWP ASYNCWINDOWPOS SWP NOACTIVATE SWP NOMOVE
  • 在 HSQLDB 中创建架构的启动脚本

    我正在尝试使用内存数据库来模拟 Teradata 数据库 我需要在构建表之前创建一个架构 但是 它让我很适合 我正在使用 Spring 并且有很多数据库交互import sql但是 这会在 Hibernate 创建所有表之后执行 我曾尝试使
  • qsort 与 std::sort 的性能比较?

    根据 Scott Meyers 在他的 Effective STL 一书中第 46 项的说法 他声称std sort比快约 670 std qsort由于内联的事实 我测试了自己 我发现 qsort 更快 有人能帮我解释这个奇怪的行为吗 i
  • 将 GridView 调整为所有屏幕尺寸

    我正在尝试将 GridView 实现为图像库的一部分 我按照下面的例子Android 开发者门户 该教程似乎适用于所有屏幕尺寸 如下所示 小屏幕尺寸和大屏幕尺寸的比例正确显示 左侧 小屏幕尺寸 右侧 大屏幕尺寸 但现在我的问题来了 当我想在
  • 使用具有多重继承的 Qt 信号和槽

    我有一堂课 MyClass 从 Qt 内置对象继承了大部分功能 QGraphicsTextItem QGraphicsTextItem间接继承自QObject MyClass还实现了一个接口 MyInterface class MyClas
  • HttpClient 异步请求未完成循环发送的大批量请求

    我想我已经成功地进行了一次测试 至少在我的系统上重复地显示了这个问题 这个问题与 HttpClient 用于不良端点 端点不存在 目标已关闭 有关 问题是已完成的任务数量低于总数 通常是几个左右 我不介意请求不起作用 但这只会导致应用程序在
  • 使用 Rails 的捆绑程序出现问题(Mac 用户)

    当我尝试运行我的应用程序时 出现以下错误 Could not find racc 1 5 2 in any of the sources Run bundle install to install missing gems I run bu
  • 如何确保 Hudson 中同时只运行某一类别的作业?

    我使用 Hudson 来自动化测试一个非常大的重要产品 我希望我的测试主机能够运行理论上支持的尽可能多的并发构建 但 excel 测试除外 它在任何时间每台机器只能运行一个 任意数量的非 Excel 测试可以同时运行 但是每台计算机一次最多
  • 加载 RS jni 库时出错:UnsatisfiedLinkError:无法加载 RSSupport:findLibrary 返回 null

    当将 RenderScript 与支持库一起使用时 我在 Motorola iRazr Android 4 1 2 上收到此错误 Error loading RS jni library java lang UnsatisfiedLinkE
  • 类、函数的前向声明

    当函数的前向声明在源文件 cpp 中起作用时 为什么同样的声明不适用于类 Thanks main cpp void forwardDeclaredFunction This is correct class One Why this wou
  • 如何使用 django-rest-framework 在序列化器级别扩展模型

    我的模型看起来像这样 class MenuItem models Model name models CharField max length 500 components models ManyToManyField Component
  • R Shiny - 如何在网络内共享应用程序

    我创建了一个 R Shiny 应用程序 我想与我的网络中的同事分享 我尝试在我的计算机上托管该应用程序 以便网络中的其他用户可以访问它并将其与他们的数据文件一起使用 I tried runApp appname host 0 0 0 0 p
  • 给定一个类路径资源,有没有办法获取具有/包含它的 java.io.File 对象?

    如果我在类路径上有一个资源 我可以将它作为流加载 甚至还有它的 URL 表示 不幸的是 Url 的某些实现没有正确实现lastModified 我想要的是获取类路径中某些内容的路径 然后将其解析为磁盘上的文件 如果它在 jar 中 则指向该