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

Cru*_*yro 3 java jar

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?

use*_*421 6

我正在尝试读取jar文件中的属性文件。我想使用File.separator,因为该应用程序将在多个平台上运行

不,您根本不想使用File.separator。JAR文件中定义的路径分隔符为/。它与平台无关。

注意/在Java的所有平台上,也可以在文件名内使用。但这不是文件名,它是资源名,它所命名的东西不是文件,而是资源。