从 jar 中提取目录
Extract a directory from a jar
我有一个 运行 的 jar 文件,但它需要一个 exe 和几个 dll 才能工作。
为了方便用户,我想把exe和2个dll的文件夹打包到jar里,等jar出来的时候解压运行。
我已经阅读了 this one, and this one 之类的答案,但我仍然不明白如何将该代码应用于我需要的内容。我知道 jar 文件本质上是一个 zip,但我不知道如何获取 zip 的路径,并从中提取我需要的文件夹。
我尝试使用 here 发布的代码来开始提取 exe,但看起来它正在尝试从 class 中提取 exe(如果这有意义吗?)
是否有人可以分享代码片段以展示如何从当前正在执行的 jar 中提取具有特定名称的文件夹?
如果你们能帮助我,我将不胜感激!
如果您想在运行时从 class 路径上的 JAR 访问资源,只需从 class 路径访问资源即可。因此无需通过 JAR API 读取它。因此,您的第一个 link 指向一个有效的解决方案。
使用合适的 classloader 可能有点棘手。如果您的资源与 Java class 文件位于同一文件夹中,此 link 可能会对您有所帮助:How to access resources in JAR file?
URL url = getClass().getResource("path/to/img.png");
或
URL url = MyClass.class.getResource("path/to/img.png");
我认为您可以分别访问这两个文件并将它们存储到一个文件中。还有一些方法可以打开流进行复制。这是一个类似的问题:getResourceAsStream returns null
我有一个 运行 的 jar 文件,但它需要一个 exe 和几个 dll 才能工作。
为了方便用户,我想把exe和2个dll的文件夹打包到jar里,等jar出来的时候解压运行。
我已经阅读了 this one, and this one 之类的答案,但我仍然不明白如何将该代码应用于我需要的内容。我知道 jar 文件本质上是一个 zip,但我不知道如何获取 zip 的路径,并从中提取我需要的文件夹。
我尝试使用 here 发布的代码来开始提取 exe,但看起来它正在尝试从 class 中提取 exe(如果这有意义吗?)
是否有人可以分享代码片段以展示如何从当前正在执行的 jar 中提取具有特定名称的文件夹?
如果你们能帮助我,我将不胜感激!
如果您想在运行时从 class 路径上的 JAR 访问资源,只需从 class 路径访问资源即可。因此无需通过 JAR API 读取它。因此,您的第一个 link 指向一个有效的解决方案。
使用合适的 classloader 可能有点棘手。如果您的资源与 Java class 文件位于同一文件夹中,此 link 可能会对您有所帮助:How to access resources in JAR file?
URL url = getClass().getResource("path/to/img.png");
或
URL url = MyClass.class.getResource("path/to/img.png");
我认为您可以分别访问这两个文件并将它们存储到一个文件中。还有一些方法可以打开流进行复制。这是一个类似的问题:getResourceAsStream returns null