我有一个URL,如下所示:
String jarFilePath = getClass().getProtectionDomain().getCodeSource().getLocation()
这将为我提供jar文件的完整路径。现在我如何跳过一个文件夹并附加一些其他路径?例如,如果jarFilePath类似于:
c:/path/to/jar/file.jar
我想跳过一个文件夹并附加另一个相对路径,如下所示:
c:/path/to/resources/path/to/resources/
文件夹资源和jar在文件系统中位于同一目录级别。
答案 0 :(得分:1)
File f = new File("C:/path/to/jar/file.jar");
File dest = new File(f.getParentFile().getParentFile(), "resources/path/to/resources");
答案 1 :(得分:1)
只需使用File-Object,即可轻松完成更多操作: import java.io.File;
String pathname = "c:/path/to/jar/file.jar";
File f = new File(pathname);
String p = f.getParent();
答案 2 :(得分:0)
你有几种方法。
array.length -3
(-1为文件名,-2为最后一个文件夹)../
(这意味着:“返回一个目录”)(那将是这样的:c:/path/to/jar/../resources/path/to/resources/
)/[^/]+/[^/]+$
答案 3 :(得分:0)
尝试使用File
对象:
File jarFile = new File(jarFilePath);
File newFolder = new File( jarFile.getParentFile().getParentFile(), "resources/path/to/resources");
如果要将路径用作字符串,请尝试使用Apache Commons IO' FilenameUtils
:
String resourcesPath = FilenameUtils.normalize( FilenameUtils.getPath(jarFilePath) + "/../resources/path/to/resources");