eclipse项目中的相对路径问题小结

        一、工作目录

        首先我们要知道,如果在Eclipse项目中直接用类似 new FileReader("1.txt") 这样不带路径直接用文件名访问文件的时候,这个文件必须是在项目的根目录下。也就是说,Eclipse中java程序的当前工作目录都是在项目根目录下的。

        二、bin?

        但是,我们会发现,很多时候用 new FileReader("1.txt") 的方式不能访问到我们需要的文件,必须要用 new FileReader("bin/1.txt")来访问。

        这个很好解释,因为java程序需要先编译成class的字节码文件然后再再运行,而程序运行的时候class文件正处于项目根目录下的 bin 目录中,所以其工作目录就是 bin 目录了。不过一般我们编译的时候,Eclipse会自动帮我们把项目依赖的文件复制一份,放到 bin 目录下的。

        三、中文!

        今天我用Eclipse写了一个简单的程序,发现我们无法通过 new FileReader("1.txt") 或者是 new FileReader("bin/1.txt") 来访问文件。我试了试用绝对路径当然没问题了。之后我通过在程序中输出 Class.class.getClass().getResource("/").getPath()的值发现,输出的是:/D:/%e5%ad%a6%e4%b9%a0/java/eclipse%e5%b7%a5%e4%bd%9c%e7%a9%ba%e9%97%b4/Points/bin/应该就是项目路径中带有中文惹的祸吧。

        之后我把项目放到纯英文目录下,用命令行运行,一切安好了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值