Java 我可以从3个目录深的jar中提取一个文件吗?

Java 我可以从3个目录深的jar中提取一个文件吗?,java,jar,Java,Jar,我有一个jar文件,其中有一个名为“client.ts”的文件(在ZipGenius中查看时)“/com/something/messaging”。当我这样做的时候 JarFile jarFile = new JarFile("Client.jar"); JarEntry zipFile = jarFile.getJarEntry("client.ts"); 它找不到“client.ts”文件。如果我将文件打包到“/resources/”中,它就会找到它。JarFile.getEntry()是

我有一个jar文件,其中有一个名为“client.ts”的文件(在ZipGenius中查看时)“/com/something/messaging”。当我这样做的时候

JarFile jarFile = new JarFile("Client.jar");
JarEntry zipFile = jarFile.getJarEntry("client.ts");

它找不到“client.ts”文件。如果我将文件打包到“/resources/”中,它就会找到它。
JarFile.getEntry()
是否只向下钻取一个目录?javadoc for简单地说:返回给定条目名称的
ZipEntry
,如果找不到则返回null。

JAR中条目的完整路径应该有效:

JarEntry zipFile = jarFile.getJarEntry("com/something/messaging/client.ts");

JAR中条目的完整路径应该可以工作:

JarEntry zipFile = jarFile.getJarEntry("com/something/messaging/client.ts");

实际上,字符串应该是“com/something/messaging/client.ts”,如果它只在resources/目录中,您知道它为什么工作吗?一定是java只搜索了一个目录。@darrickc.blogspot.com这一点我不太清楚。很高兴你解决了这个问题。Zip(以及jar)文件实际上没有目录的概念。它只是带有斜杠的条目名。实际上,字符串应该是“com/something/messaging/client.ts”。你知道为什么它只在resources/目录中工作吗?一定是java只搜索了一个目录。@darrickc.blogspot.com这一点我不太清楚。很高兴你解决了这个问题。Zip(以及jar)文件实际上没有目录的概念。它只是带有斜杠的条目名。您甚至可以在名称中包含“/../”。