相关疑难解决方法(0)

如何从jar中获取jar URL:包含"!"的URL 和罐子里的特定文件?

我在运行时获得了一个jar文件URL:

jar:file:///C:/proj/parser/jar/parser.jar!/test.xml
Run Code Online (Sandbox Code Playgroud)

如何将其转换为有效路径:

C:/proj/parser/jar/parser.jar.
Run Code Online (Sandbox Code Playgroud)

使用我已经试过File(URI),getPath(),getFile()是徒劳的.

java url jar file path

17
推荐指数
2
解决办法
4万
查看次数

How to use File.separator for a jar file resource?

I am trying to read a property file which is located within a jar file. I want to use File.separator as the application will run on multiple platforms. I am constructing the path as follows:

jarFilePath="jar:file:"+jarFile.getAbsolutePath()+"!"+jarPropertyFilePath; //jarPropertyFilePath is getting loaded from a class which is storing Constant JAR_PROPERTY_FILE_PATH.
fileURL= new URL(jarFilePath);
Run Code Online (Sandbox Code Playgroud)

但是,仅当jarPropertyFilePath(jar中属性文件的固定位置)的形式为:

情况1:

public static final String JAR_PROPERTY_FILE_PATH = "/manifest/patchControl.properties";
Run Code Online (Sandbox Code Playgroud)

情况2:

如果我按以下方式使用File.separator,它将给出java.net.MalformedURLException:否!

public static final String JAR_PROPERTY_FILE_PATH = File.separator+"manifest"+File.separator+"patchControl.properties";     
Run Code Online (Sandbox Code Playgroud)

在第一种情况(工作原理很好)中,调试时的最终URL如下:

jar:file:C:\MyWorkspace\FalconPatchInstaller\.\patches\DS661JDK1.8.jar!/manifest/patchControl.properties
Run Code Online (Sandbox Code Playgroud)

在情况2(不起作用)中,调试时的最终URL如下:

jar:file:C:\MyWorkspace\FalconPatchInstaller\.\patches\DS661JDK1.8.jar!\manifest\patchControl.properties
Run Code Online (Sandbox Code Playgroud)

如何将File.separator用于JAR_PROPERTY_FILE_PATH?

java jar

3
推荐指数
1
解决办法
1622
查看次数

标签 统计

jar ×2

java ×2

file ×1

path ×1

url ×1