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?
我正在尝试读取jar文件中的属性文件。我想使用File.separator,因为该应用程序将在多个平台上运行
不,您根本不想使用File.separator。JAR文件中定义的路径分隔符为/。它与平台无关。
注意/在Java的所有平台上,也可以在文件名内使用。但这不是文件名,它是资源名,它所命名的东西不是文件,而是资源。
| 归档时间: |
|
| 查看次数: |
1622 次 |
| 最近记录: |