当前位置:编程学习 > JAVA >>

用相对路径,咋就得不到图片呢




学习Twaver,写的小例子;
图片用绝对路径可以得到,到用相对路径总是得不到。

String upPort =  "file:/D:/bucket/workspace/Twaver/resource/image/port1.png";  这个可以

String upPort =  "../../../resource/image/port1.png";  //不可以

请问是什么原因? --------------------编程问答-------------------- 第一个是./吧
"./../../resource/image/port1.png"; //不可以
没试验 蒙的呵呵 --------------------编程问答-------------------- 具体原因说不来
情况就是在IDE中的相对路径中使用一次以上的上级目录符号就会找不到文件

解决办法:利用系统属性文件使用相对路径 

当前工程所在目录:
String path = System.getProperty("user.dir"); --------------------编程问答-------------------- 把resouce目录加到Build Path。

然后 getClass().getResource("/image/rack.png") --------------------编程问答-------------------- 导出时把 image目录也放到jar文件里 --------------------编程问答-------------------- 搞不明白,为什么不去他们的论坛问 http://twaver.servasoft.com/forum/ --------------------编程问答--------------------
引用 2 楼 xiaos_hui 的回复:
具体原因说不来
情况就是在IDE中的相对路径中使用一次以上的上级目录符号就会找不到文件

解决办法:利用系统属性文件使用相对路径 

当前工程所在目录:
String path = System.getProperty("user.dir");



恩,我这样处理的
String path = System.getProperty("user.dir");
path = path.replace("\\","/"); 
rack.setImage("file:/"+path+"/resource/image/rack.png");

感觉代码写的不够灵活,像这样么写,如果是到了Linux/Unix环境,能得到图片不? --------------------编程问答-------------------- user.dir 是个不定的目录,用这个定位资源?! --------------------编程问答-------------------- 第二个,是从当前的页面所在的文件夹开始找,".."跳上一级,你自己算吧,如果在不同的目录中坐引用,就会出现这种不能显式的方法

所以建议是绝对路径!读取从项目根目录开始~
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,