如何从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中而不运行它们?

    我正在努力将我的测试类包含到 jar 包中 但不运行它们 经过一番谷歌搜索后 我尝试过mvn package DskipTests 但我的测试类根本没有添加到 jar 中 有任何想法吗 如果您遵循 Maven 约定 那么您的测试类位于src
  • 嵌入式二进制资源 - 如何枚举嵌入的图像文件?

    我按照中的说明进行操作这本书 http www apress com book view 9781430225492 关于资源等的章节 我不太明白的是 如何替换它 images Add new BitmapImage new Uri Ima
  • JOGL 异常 - 在 java.library.path 中找不到gluegen-rt

    线程 main java lang UnsatisfiedLinkError中出现异常 java library path中没有gluegen rt 在 java lang ClassLoader loadLibrary ClassLoad
  • 如何使用类路径位置

    为了解决这个问题 我到处寻找 但找不到解决方案 问题如下 我在 Tomcat 7 服务器上构建了一个 Spring mvc web 应用程序 准确地说是 7 0 12 并且我在获取
  • 头部带有脚本的 Nodejs EJS 部分

    我正在使用 EJS 从 Nodejs 服务器渲染和服务器 HTML 页面 我包含的一些部分在头部引用了脚本和样式表 但这会导致客户端对同一文件发出多个请求 例如 如果父视图也包含该文件 例如
  • Install4j:如何在安装结束时执行命令行 java -jar filename.jar

    在 Intall4j 中 在安装结束时 我只想通过执行如下命令行来初始化某些内容 java jar filename jar 我怎样才能归档这个任务install4j Thanks 将 运行可执行文件或批处理文件 操作添加到 安装屏幕 并设
  • 在Linux中执行jar文件[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我创建了一个可执行的 Java jar 文件 也就是说 我将 java 程序正确打包到 jar 文件中 包括 META INF MANIFEST 文件
  • 如何在 Windows 上使用 Java Hotspot JVM 禁用小型转储 (mdmp) 文件生成

    目前 我有一个已部署的可执行 jar 文件 该文件在崩溃时会创建大型 7 Gb 小型转储文件 我想要一个导致崩溃原因的文本表示 而不是 JVM 状态的二进制文件 我尝试使用中找到的信息这个 CodeRanch 帖子 http www cod
  • 配置 Eclipse 将 App Engine 类预先捆绑到单个 JAR 中以加快预热速度

    在与另一家同样使用 App Engine 的公司的同事进行讨论后 他告诉我 他通过以下步骤成功地将应用程序预热时间从约 15 秒缩短到约 5 秒 配置 Eclipse 将编译过程中生成的类捆绑到单个 JAR 文件中 配置 Eclipse 以
  • 如何添加资源并使用它们

    在我的应用程序中 我想添加 2 个图像作为资源 我想使用这些图像 当我在应用程序中单击 是 按钮时 第一张图像将被设置为壁纸 当我在应用程序中单击 否 按钮时 第二张图像将被设置为桌面壁纸 提前致谢 regards 最简单的方法是创建一个文
  • 为什么从 Eclipse 导出的可运行 JAR 不起作用?

    我有一个在 Eclipse 中运行良好的项目 但是 当我将其导出到可运行的 JAR 其中包含依赖项 时 它不会运行 从控制台运行 JAR 时出现的错误是 编辑 之前没有使用 jar 运行它 INFO Loading XML bean def
  • 访问 JAR 资源

    我有一个jar包含我想要分发的资源 主要是缓存 日志记录等配置 的文件 我对这些资源的相对路径有问题 所以我做了我在另一个 stackoverflow 问题中发现的问题 该问题说这是一种有效的方法 ClassInTheSamePackage
  • 从 Eclipse 中的工作应用程序导出后出现 ClassNotFoundException

    因此 在将项目导出到可运行的 jar 后 我收到此消息 我很不明白为什么会这样 因为应用程序正在运行完美当我在 Eclipse 中选择 运行 时 我已经尝试过提取和打包可靠的库 但没有雪茄 有人知道该怎么办吗 Exception in th
  • 使用桌面的默认应用程序打开存储在 jar 文件中的 PDF 文件

    我的计算机科学课程的程序开发即将结束 然而 要求之一是应用程序内有一份用户手册 我在 Eclipse 工作区中将用户手册保存为 PDF 它存储在 Documents PDF Manual pdf 下 我最初使用这段代码 URL url ge
  • IDisposable,这真的很重要吗

    很久以前我就开始使用 C C 但我仍然有一个习惯 即确保正确清理所有资源 我始终确保在 IDisposable 类上调用 Dispose 并在包含一次性对象的类中实现 Dispose 模式 然而 在我的环境中 我或多或少是唯一一个这样做的人
  • Ruby 代码到 JAR

    我希望能够将 ruby 程序编译为 java JAR 程序 我研究过 JRuby 看到了几个能够 eval ruby 代码的 Java 应用程序示例 但是是否有更优雅的解决方案允许简单地用 ruby 编写所有内容 然后将其直接编译为 JAR
  • 如何在 Struts 2 应用程序中读取文本文件 [重复]

    这个问题在这里已经有答案了 开发 Struts 2 应用程序时遇到以下问题 我需要读取使用我的应用程序部署在 Web 服务器中的文本文件 我怎样才能知道它的相对路径来访问它 换句话说 如果我知道部署目录内的相对路径 如何找到绝对路径 当我在
  • 为什么 Assembly.GetManifestResourceStream() 中的文本以三个垃圾字符开头?

    我有一个 SQL 文件作为嵌入式资源添加到我的 VS NET 2008 项目中 每当我使用以下代码读取文件的内容时 返回的字符串总是以三个垃圾字符开头 然后是我期望的文本 我认为这与我正在使用的 Encoding Default 有关 但这
  • 从 .resx 文件组获取所有可用区域性

    我需要以编程方式列出 resx 文件组中的可用区域性 但 ResourceManager 类似乎没有帮助 我可能有 Labels resx Labels fr FR resx Labels ro RO resx 等等 但是 我如何在运行时找
  • 检测 Java JAR/代码篡改

    我正在编写一个以 JAR 文件形式分发的软件 目前 该 JAR 文件可以被篡改以检索并保存我们的服务器通过以下方式传输的另一个文件URLClassLoader 进行反编译 并在我们的代码中找到应保持私有的各种内容 以确保使用它的客户端的安全

随机推荐

  • 使用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