绝对路径和相对路径(MAVEN项目中)

1.HTML页面中经常会有文件的引用涉及到文件的路径问题:

  (1) /  指的是项目的根目录;

  (2) ./ 指当前目录, 直接跟文件夹名称前面不加其它符号也表示当前目录;

  (3) ../ 表示上一级目录

  (4) ../../表示上两级目录

 对于应用了MAVEN的项目,运行的过程中项目的目录层次和我们在ECLIPSE中开发的时候出现的层次并不一致,所以我们在引用文件时建议使用(1) 接根目录去找相关应用的JS文件或者其它资源文件,以免出现不能找到资源的错误.

注: MAVEN项目中文件的目录和ECLIPSE中开发过程中所在的文件夹不同,而是根据我们在CONTROLLER中设计的MAPPING所对应的路径去找.比如MAPPING设置为/rest/borrows, 那么其实际运行目录则是跟目录下的borrows文件夹中,和在开发过程中其所在的文件目录无关.

### 如何在 IntelliJ IDEA 中获取项目文件的绝对路径 #### 使用 Java 代码获取当前项目绝对路径 可以通过 `System.getProperty` 方法来获取当前工作目录(即项目的根目录)。以下是实现方法: ```java public class MainClass { public static void main(String[] args) { // 获取当前项目的根目录 String projectRootPath = System.getProperty("user.dir"); System.out.println("项目目录:" + projectRootPath); // 如果需要特定文件的绝对路径,可以拼接相对路径 String filePath = projectRootPath + "/src/main/java/com/example/Example.java"; System.out.println("文件绝对路径:" + filePath); } } ``` 上述代码会打印出项目的根目录以及指定文件的绝对路径[^1]。 --- #### 在 Maven 项目中动态获取资源文件的绝对路径 如果需要加载位于 `resources` 文件夹中的文件,可以使用以下方式获取其绝对路径: ```java import java.io.File; public class ResourceLoader { public static void main(String[] args) { // 加载 resources 下的文件并获取其绝对路径 File file = new File(ResourceLoader.class.getClassLoader().getResource("config.properties").getFile()); System.out.println("资源配置文件的绝对路径:" + file.getAbsolutePath()); } } ``` 此方法适用于读取打包后的 JAR 或者 IDE 运行环境下的资源文件路径[^3]。 --- #### 插件开发场景下获取插件内部文件的绝对路径开发 IntelliJ IDEA 的插件时,可能需要访问插件内的某些文件。此时可通过 `PluginManager` `PluginId` 来定位插件安装路径: ```java import com.intellij.openapi.components.PluginManager; import org.jetbrains.annotations.NotNull; import com.intellij.ide.plugins.IdeaPluginDescriptor; import com.intellij.openapi.extensions.PluginId; public class PluginFilePathGetter { public static void main(String[] args) { @NotNull PluginId pluginId = PluginId.getId("com.your.company.unique.plugin.id"); IdeaPluginDescriptor plugin = PluginManager.getPlugin(pluginId); if (plugin != null && plugin.isEnabled()) { File pluginDirectory = plugin.getPath(); String absolutePath = pluginDirectory.getAbsolutePath(); System.out.println("插件安装目录:" + absolutePath); } else { System.err.println("未找到对应的插件或插件已禁用!"); } } } ``` 这段代码展示了如何通过插件 ID 定位插件的实际存储位置[^4]。 --- #### 手动调整项目结构以支持正确路径解析 为了确保路径解析无误,在创建 Maven 项目时需确认项目结构已被正确定义。例如,将 `java` 目录标记为源码目录 (`Sources`) 并将 `resources` 标记为资源目录 (`Resources`) 是必要的操作[^5]。 --- #### 总结 以上提供了三种不同场景下获取文件或目录绝对路径的方法:普通 Java 应用程序、Maven 工程以及 IntelliJ IDEA 插件开发。每种情况都应根据实际需求选择适合的方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值