IDE工具运行Java和jar包运行时的文件路径问题


有时候遇到Java代码中出现相对路径时,会比较疑惑文件路径的问题,所以做了一个测试,分别测试了如下代码中的三种情况:

import java.io.File;
import java.io.IOException;

public class TestPath {
	public static void main(String[] args) throws IOException {
//		String path1 = "../file/aaa";
//		String path2 = "../file/aaa/bbb";
//		String path3 = "../file/aaa/bbb/test.txt";
//		String path1 = "/file/aaa";
//		String path2 = "/file/aaa/bbb";
//		String path3 = "/file/aaa/bbb/test.txt";
		String path1 = "file/aaa";
		String path2 = "file/aaa/bbb";
		String path3 = "file/aaa/bbb/test.txt";
		File file1 = new File(path1);
		File file2 = new File(path2);
		File file3 = new File(path3);

		System.out.println("file1:" + file1.mkdirs());
		System.out.println("file2:" + file2.mkdir());
		System.out.println("file3:" + file3.createNewFile());
	}
}

项目的绝对路径为:D:\project\testPath

其中testPath为项目名称。

用IDE工具运行时:

路径:

不加“/”,直接在项目的根目录下(即testPath目录下,也就是src同级目录中)生成文件

加“/”,在项目所在盘符的根目录下生成文件(即在D:盘下)
加“../”,在项目所在目录中(即D:\project目录下,也就是项目同级目录中)生成文件


如果打成jar包运行时:(假设jar包位于:D:\project\jar文件夹下)

路径:

不加“/”,和jar包同级的目录下生成文件(D:\project\jar文件夹下)

加“/”,在jar包所在盘符的根目录下生成文件(D:盘下)
加“../”,在jar包的上级目录中生成文件(D:\project文件夹下


总结:
在项目中是以项目的根目录(src所在目录)为当前目录,

使用jar包,是以jar包所在位置为当前目录。

“/”表示的是文件所在位置的根路径(当前盘符),“../”表示所在位置的上一级路径,不加“/”则是项目根路径或jar的当前位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值