如何从jar资源中提取目录(和子目录)?

2024-03-08

我有一个目录(带有子目录)模板,它作为资源保存在 jar 文件中。跑步期间 我需要将其(模板)提取到 tmp 目录,更改一些内容,最后将其发布为压缩工件。

我的问题是:如何轻松提取这些内容?我正在尝试 getResource() 以及 getResourceAsStream() ..


以下代码在这里工作正常:(Java7)

String s = this.getClass().getResource("").getPath();
if (s.contains("jar!")) {
    // we have a jar file
    // format: file:/location...jar!...path-in-the-jar
    // we only want to have location :)
    int excl = s.lastIndexOf("!");
    s = s.substring(0, excl);
    s = s.substring("file:/".length());
    Path workingDirPath = workingDir = Files.createTempDirectory("demo")
    try (JarFile jf = new JarFile(s);){
        Enumeration<JarEntry> entries = jf.entries();
        while (entries.hasMoreElements()) {
            JarEntry je = entries.nextElement();
            String name = je.getName();
            if (je.isDirectory()) {
                // directory found
                Path dir = workingDirPath.resolve(name);
                Files.createDirectory(dir);
            } else {
                Path file = workingDirPath.resolve(name);
                try (InputStream is = jf.getInputStream(je);) {
                    Files.copy(is, file, StandardCopyOption.REPLACE_EXISTING);
                }
            }
        }
    }
} else {
    // debug mode: no jar
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从jar资源中提取目录(和子目录)? 的相关文章

  • 将命令行参数传递给可运行的 JAR [重复]

    这个问题在这里已经有答案了 我从 Eclipse 项目构建了一个可运行的 JAR 用于处理给定的 XML 文件并提取纯文本 但是 此版本要求将该文件硬编码在代码中 有没有办法做这样的事情 java jar wiki2txt enwiki 2
  • Juno - Java 构建路径 - 项目无法读取或不是有效的 ZIP 文件

    我收到此错误 说明 资源路径 位置类型 所需库的存档 项目 Home 中的 src Program java 无法读取或无效 ZIP 文件主页 构建路径 构建路径问题 是什么原因导致此错误以及如何修复它 请按照以下导航 Right Clic
  • 如何从命令行向 Android 项目添加外部 jar 库

    我正在尝试构建一个具有一些依赖项的 Android 项目 jar 文件位于 lib 目录中 我可以通过将这些 jar 文件添加到我的类路径来构建项目 但当然它会在模拟器中强制关闭 因为这些库不存在 我正在使用 ant 从命令行执行此操作 n
  • PHP 与 MySQL 中的资源 id #6 错误

    我这是为了我正在制作的投票系统 此代码向用户显示了他们可以从中选择的问题列表 div class main questions p class style1 style2 strong Select Your Question strong
  • 将外部 jar 放在 JAVA_HOME/lib/ext 目录中是一件坏事吗?

    我们有一个在 JRE 环境中运行的应用程序 该应用程序使用了一些外部 jar 我们已将它们放在 JAVA HOME lib ext 文件夹中 这对我们来说已经工作了很多年 但最近一位新程序员加入了我们的团队 他似乎强调这是一件多么糟糕的事情
  • 如何在intelliJ idea中创建java包的jar

    我需要创建一个包含模块内部包中已编译类的 jar 我有一个 jar 文件 它实际上是模块内部的一个包 我需要重新创建它 我可以创建整个模块的 jar 但无法创建包的 jar 文件 我怎样才能按照想法做到这一点 Intellij IDEA 2
  • 如何在Java文件中指定相对文件路径,以便将文件放入jar文件后仍然可以工作?

    假设我有一个Java类需要使用绝对路径访问文件 home gem projects bar resources test csv package com example class Foo String filePath path to t
  • Gradle创建多项目Jar

    因此 从 Gradle 和 Android Studio 诞生之初起 我就一直在使用它们 然而 我发现自己用头撞墙的次数有时远远超过了它的价值 我花了一天半的时间试图解决我目前的困境 在我工作的地方 我们使用很多共享库项目 这意味着与 Gr
  • 如何在eclipse或jar-file-explorer中查看jar文件的内容

    我正在开发一个项目 我需要知道我的网络项目中包含的 jar 文件的内容 我正在使用 Eclipse 朱诺 然而 Netbeans 提供了这些功能来查看 jar 文件的内容 请建议我如何在 eclipse 中实现这一点 在项目资源管理器中 您
  • 编码杂志[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Maven:从构建中排除测试

    我在项目的 src test java 文件夹中有一些类用作测试 当我使用标准 Maven 编译插件运行 Maven 时 这些项目被编译成 class 文件 并包含在打包编译代码的 jar 中 在运行 Maven 和构建我的版本之前 我已经
  • 无法从 com.android.aaptcompiler.ParsedResource@ef79973 提取资源

    无法从 com android aaptcompiler ParsedResource ef79973 提取资源 无法从 com android aaptcompiler ParsedResource 4c95ce87 提取资源 C Use
  • jar 中的 apklib 有什么优点?

    我正在关注这个问题 https stackoverflow com questions 6059502 whats the difference between apklib and jar files但它并没有完全回答我的问题 jar 中
  • 从 R 中的方差分析 (glm) 中提取残余偏差

    我在 R 中安装了一个 glm 模型并采用了方差分析表 我需要提取 残余偏差 列 但它会产生错误 以下是代码 创建数据 counts lt c 18 17 15 20 10 20 25 13 12 outcome lt gl 3 1 9 t
  • Django REST Framework:何时创建超链接资源以及何时创建嵌套资源?如何发布嵌套资源?

    我正在使用 Django REST 框架构建 REST Web API 事情进展顺利 但我偶然发现了嵌套资源的问题 起初 REST API 中的所有关系都是超链接的 例如 一篇文章看起来像这样 path http api myproject
  • 在 Android 中存储和访问 XML 的最佳方式是什么?

    虽然我意识到资源本身是在 XML 文件中定义的 但如果我有一个我希望使用的自己类型的 XML 文件 我是否应该将它们存储在 res xml 中 有没有更好的方法来做到这一点 例如使用资产 然后将它们加载为二进制文件以供另一个 XML 库解析
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • 在资源字典中添加字体系列

    我正在使用msdn教程 http msdn microsoft com en us library ms753303 aspx wa wsignin1 0要在我的 Wpf 应用程序中添加 FontFamily 在 csproj 中我有
  • 如何从 C# 代码访问 wpf 中的 ResourceDictionary?

    我有一个DataTemplate在我想通过 C 代码访问的 xaml 文件中定义 谁能告诉我如何访问它 我添加了一个新的ResourceDictionary文件 其名称是Dictionary1 xaml 我有一个数据模板 例如
  • 如何为可运行的jar添加jvm参数?

    对于我正在创建的可运行 jar 它需要 xmx1024 作为 JVM 参数 我怎样才能做到这一点 或者有什么替代方案吗 您可以为程序要运行的每个平台提供启动脚本 例如在 Linux 上你可以有program sh java mx1024 j

随机推荐

  • 使用Notepad++编译Java代码

    我一直在尝试将 Notepad 设置为一个小型 Java 环境 主要是为了学习 Java 因为我在获得一个与 NetBeans 一起使用的简单程序时遇到了一些困难 不幸的是 所有关于设置 Notepad 来调用 Java 代码的建议都不起作
  • 登录重定向后如何传递用户名?

    我有 2 个应用程序 一个用于登录 app1 而另一个则做我想要的其他事情 app2 The app1是用 ASP NET Boilerplate 构建的 我想要做的是使用此应用程序登录后 我想重定向到app2 到目前为止一切都很好 我只是
  • 获取 :before 伪元素以使用父元素的背景图像

    CSS 是否可用于将 before 伪元素的背景图像设置为与其父元素相同 我想说继承 但是伪元素可以继承任何东西吗 例子 li a background f56a46 url images gallery thumb jpg center
  • UIButton 与 UITableViewCell 中的 UIImages - 重叠等

    我的 UITableViewCell 有问题 我正在开发一个应用程序 其中提要中的某些帖子可能包含图像 并且单击的按钮还需要包含一个 标签 编号 具体取决于它位于表格的哪一行 因为我下载了一组图像 问题出在我滚动 正如您已经猜到的 表格时
  • 当 SQLAlchemy 事件触发 Celery 任务时连接关闭

    当我的一个单元测试删除 SQLAlchemy 对象时 该对象会触发 after delete 事件 该事件会触发 Celery 任务从驱动器中删除文件 任务是CELERY ALWAYS EAGER True测试时 轻松重现问题的要点 htt
  • “无法连接到任何网址”和“不支持身份验证”

    我在 Eclipse 上有一个 Git 存储库和项目 我正在尝试在 github 上分享项目 但我总是收到这个错误 Can t connect to any URI https github com
  • Python 3 最佳实践参数顺序

    In this question https stackoverflow com questions 9872824 calling a python function with args kwargs and optional defau
  • 时区感知。 python 中的时区天真

    我正在 python 中使用日期时间对象 我有一个函数需要一段时间才能找到当时和现在之间的差异 def function past time now datetime now diff now past time 当我在将 Past tim
  • Android 11 下载文件到下载文件夹不起作用

    目前我正在尝试使用 DownloadManager 下载文件 但这不起作用 下载开始 但下载后下载文件夹内没有文件 这就是我的代码 private void downloadAddon try DownloadManager Request
  • 创建动态 Chrome 主题

    我正在尝试为 Google Chrome 构建一个主题扩展 它将使用远程图像源定期更新背景图像 即图像存储在网络服务器上 而不是本地 问题是主题不允许包含脚本元素 有什么建议如何解决这个限制吗 如果背景图像是指新标签页的背景 则可以将其替换
  • 无法禁用 gridExtra 的 R markdown 输出(附加注释)

    在我的 r markdown 报告中 我使用了 2 个块 First r include FALSE echo FALSE results asis 我在其中加载所有包并进行计算 第二个 r fig margin TRUE fig widt
  • 自 C++17 起,构造函数的模板参数推导是否允许显式指定某些类模板参数?

    除了构造函数模板参数推导的最明显用法之外 我可以想象一些更复杂的用例 其中我们仅推导模板类的部分参数 例如 std pair
  • 使用 JavaScript 隐藏/显示高级选项

    我正在制作一个 HTML 表单 我希望某些字段位于 高级选项 下 我想创建一个 高级选项 链接 可能带有 加号 这样当用户单击链接或符号时 就会显示这些高级字段 我怎样才能在 JavaScript 中做到这一点 我尝试在 Google 上搜
  • resque 调度程序作业的奇怪行为

    所以一些背景 我在这里得到了一些建议 在 Ruby on Rails 中安排事件 https stackoverflow com questions 15710013 scheduling events in ruby on rails 今
  • 这个联合是否违反了严格的别名?浮点寄存器怎么样

    union Uint32 Integer Float32 Real Field 我必须使用该联合来实现一些 IEEE 技巧 这会破坏严格的别名吗 GCC 不会发出任何警告 即使使用迂腐的严格别名 也尝试过 GCC 4 5 和 4 6 但据我
  • 当 WebRequest 无法找到该前缀的创建者时出现“NotSupportedException”

    我有一个非常奇怪的问题WebRequest in a ServiceStackWeb 应用程序 由 Mono 上的 XSP 托管 看起来请求模块的注册工作方式非常奇怪 我在用WebRequest创建一个 HTTP 请求 但它失败了 因为它无
  • memcached.dll 是否存在?

    Windows 是否存在 memcached 不是 memcache 扩展 我浏览了旧的答案 但没有找到任何东西 它不存在 而且不太可能很快存在 主要问题不是扩展本身 而是 libmemcached 库 该库几乎不能移植到除 Linux 系
  • NodeJS - 上传到s3而不保存在本地文件系统中

    我收到来自 REST API 中的 POST 响应的一些文本 我想为此直接在 s3 中创建一个文本文件 我偶然发现的所有示例都是使用本地文件然后上传它 有没有办法直接上传而不保存在本地系统 您可以直接将 req 通过管道传输到 s3 upl
  • 如何使用 FOSRestBundle 将通用 URI 前缀添加到控制器的所有路由?

    我已经开始为使用 Symfony 开发的应用程序实现控制器 这是我第一次尝试同时使用 Symfony 和 PHP 来完成该任务 我通常使用 Java 以及 JAX RS 或 Spring 我跟着本教程 https jeremycurny c
  • 如何从jar资源中提取目录(和子目录)?

    我有一个目录 带有子目录 模板 它作为资源保存在 jar 文件中 跑步期间 我需要将其 模板 提取到 tmp 目录 更改一些内容 最后将其发布为压缩工件 我的问题是 如何轻松提取这些内容 我正在尝试 getResource 以及 getRe