当前位置: 首页 > 知识库问答 >
问题:

从类路径上jar文件内的文件夹读取文件

南宫阳焱
2023-03-14

我有一个带有图形编辑器的项目(如GMF技术),我需要读取一个文件。Jar库位于项目的类路径上。

VectorSync_1.0.0.201403121100.jar具有如下结构:

矢量同步:

  • 图标/矢量同步。gif

这个导入的项目的类路径。Jar文件是:

<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="lib" path="/home/jperezmedina/git/arom/arom-core/target/scala-2.9.0/aromslave_2.9.0-0.1.jar"/>
    <classpathentry kind="lib" path="/home/jperezmedina/runtime-EclipseApplication/DefaultProject.arom/lib/VectorSync_1.0.0.201403121100.jar"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

我使用此方法尝试访问. xml文件:

JarFile file = new JarFile("VectorSync_1.0.0.201403121100.jar");

BufferedReader input1 = 
    new BufferedReader(new InputStreamReader(file.getClass().
        getClassLoader().getResourceAsStream("model/VectorSync.xml")));

但使用的方法始终返回null。

你能帮我解决这个问题吗

谢谢

共有2个答案

宋鸿云
2023-03-14

你试过这种方法吗?

Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
仲孙阳
2023-03-14

如果查看JarFile,您会注意到它为您提供了这样做的api

JarFile file = new JarFile("VectorSync_1.0.0.201403121100.jar");
ZipEntry entry = file.getEntry("model/VectorSync.xml");
BufferedReader input1 = new BufferedReader(
                        new InputStreamReader(file.getInputStream(entry)));
 类似资料:
  • 问题内容: 我只想从完整路径到文件获取文件夹路径。 例如,我想要得到(不包括)。 我已经尝试过这样的事情: 但是它给了我这样的结果: 这不是我需要的结果(为)。 关于如何获取文件路径的任何想法? 问题答案: 您几乎可以使用该功能了。您只需要加入字符串,如下所示。 虽然,我建议使用该函数来执行此操作,但是您只需要传递字符串即可,它将为您完成工作。由于您似乎在Windows上,因此也考虑使用该功能。一

  • 我只想从文件的完整路径中获取文件夹路径。 例如,我希望只得到(不包括)。 我曾经尝试过这样的事情: 但它给了我这样一个结果: 这不是我需要的结果(是)。 关于如何获取文件路径有什么想法吗?

  • 我一直在尝试制作可以读取与它相同目录中的csv文件的jar应用程序。然而,事实证明这很困难,因为我目前访问该文件的方法是: 它适用于在IDE中运行的程序和测试,但在从编译的jar文件运行程序时不起作用。我不知道如何让它对这两者都起作用。我真的不能理解这个路径的东西,似乎有一百万种方法可以做到这一点,其中只有一种只适用于一个特定的场景。

  • 问题内容: 这是我想做的,我想知道是否有任何Spring类可以帮助实现。对于这个特定的问题,我不必使用spring,我只是将其与其他所有东西一起实现。 在我的DAO层中,我想外部化我的sql文件,也就是每个文件1个sql。我想读取并缓存sql语句,甚至可能作为spring bean单例。但是在我最初的挣扎中,我只是在类路径中加载一个sql文件时遇到问题… 春天有什么可以帮助您的吗?我已经阅读过文档

  • 问题内容: 我开发了一个应用程序,可以从用户选择的文件夹中读取文件。它显示每个文件中有多少行代码。我只希望Java文件显示在文件选择器(扩展名为.java的文件)中。下面是我的代码: 我也进行了编辑,但是仍然无法正常工作,请告知请告知如何仅读取扩展名为.java的文件,换句话说,请仅从文件夹中读取java文件,请告知 问题答案: 您需要一个FilenameFilter。这应该为您工作:

  • 我们有一个项目,我们建立与Gradle。我们使用IntelliJ作为我们的开发环境。我们有一些资源想要保存在JAR之外,所以我们将它们放在src/dist-文件夹中。这在从命令行运行应用程序时工作得很好,但当我们想从IntelliJ调试时就不那么好了。我们可以向src/dist放一个运行时依赖项,但是我们最终会在生成的ZIP文件中使用lib-folder中的文件,而这不是我们想要的。 看起来这个问