项目中获取绝对路径

本文介绍了一种在Java中获取CLASSPATH下指定文件绝对路径的方法,并通过具体代码示例展示了如何实现这一功能。
获取CLASSPATH下文件的绝对路径
当使用相对路径写入文件时候,就需要用到绝对路径。下面是个例子:
package com.lavasoft;

import java.io.File;

/**
* CLASSPATH文件的绝对路径获取测试
*
* @author leizhimin 2010-1-18 9:33:02
*/
public class Test {
//classpath的文件路径
private static String cp = "/com/lavasoft/cfg/syscfg.properties";

public static void main(String[] args) {
//当前类的绝对路径
System.out.println(Test.class.getResource("/").getFile());
//指定CLASSPATH文件的绝对路径
System.out.println(Test.class.getResource(cp).getFile());
//指定CLASSPATH文件的绝对路径
File f = new File(Test.class.getResource(cp).getFile());
System.out.println(f.getPath());
}
}


输出:
/D:/projects/bbt/code/cdn/planrpt/out/production/planrpt/
/D:/projects/bbt/code/cdn/planrpt/out/production/planrpt/com/lavasoft/cfg/syscfg.properties
D:\projects\bbt\code\cdn\planrpt\out\production\planrpt\com\lavasoft\cfg\syscfg.properties

Process finished with exit code 0
在Spring Boot Maven项目中,有多种方法可以获取`target/classes`的绝对路径。以下是几种常见的实现方式: ### 使用`ResourceLoader` `ResourceLoader`是Spring框架提供的一个接口,用于加载资源。可以通过它来获取`target/classes`目录下的资源,进而得到该目录的绝对路径。 ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.stereotype.Component; import java.io.IOException; @Component public class ClassPathResourceExample { @Autowired private ResourceLoader resourceLoader; public String getClassesPath() throws IOException { Resource resource = resourceLoader.getResource("classpath:"); return resource.getFile().getAbsolutePath(); } } ``` ### 使用`Class.getResource` `Class`类的`getResource`方法可以用来获取类路径下的资源。通过获取类路径下的一个虚拟资源,然后得到其绝对路径。 ```java public class GetClassesPathExample { public static String getClassesPath() { return GetClassesPathExample.class.getResource("/").getPath(); } } ``` ### 使用`ClassLoader.getResource` `ClassLoader`的`getResource`方法也可以用来获取类路径下的资源。 ```java public class ClassLoaderExample { public static String getClassesPath() { ClassLoader classLoader = ClassLoaderExample.class.getClassLoader(); return classLoader.getResource("").getPath(); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值