Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为jar中的文件打开inputstream_Java - Fatal编程技术网

Java 为jar中的文件打开inputstream

Java 为jar中的文件打开inputstream,java,Java,我想访问jar中的一个文件并将其解包。但是我不能像访问文件那样使用路径访问它。最好的方法是什么?我假设您要访问的文件在resources文件夹中。当您生成一个jar时,路径会发生变化,这篇文章可能会帮助您: 我想我们可以这样做 JarFile jarFile = new JarFile("the/path/of/jar"); InputStream inputStream =null; ZipEntry file = jarFile.getEntry("file/i

我想访问jar中的一个文件并将其解包。但是我不能像访问文件那样使用路径访问它。最好的方法是什么?

我假设您要访问的文件在resources文件夹中。当您生成一个jar时,路径会发生变化,这篇文章可能会帮助您:

我想我们可以这样做

JarFile jarFile = new JarFile("the/path/of/jar");
InputStream inputStream =null;
ZipEntry file = jarFile.getEntry("file/i/need");
if(file != null) {
    inputStream = jarFile.getInputStream(file);
}

这是一个maven依赖项jar。它位于当地的maven回购协议中。我有路。我想访问jar中的属性文件。我想对工作区中的所有项目都这样做,比如遍历依赖项并读取每个项目的属性。所以我认为那不行。@kiri:你试过了吗?在我的情况下,我是从外部访问项目的。我不在这个项目里面。我正在进行eclipse插件开发,并将每个项目作为IProject进行迭代,获取它们的ClassPathEntries。从那里我可以知道它的位置。(我感兴趣的是maven回购协议)。我试着做如下的事情,但没有成功
for(IClasspathEntry classpathEntry:classPathEntries){InputStream is=classpathEntry.getClass().getClassLoader().getResourceAsStream(“META-INF/Packages.xml”);}
这篇文章也有类似的内容