关于eclipse中的图片路径

有时我们在eclipse中开发j2me程序会常常碰到这样的情况,程序运行时出现空指针异常,可检查程序时发现其它代码没有错误,图片加载得好像也正确,实在是摸不着头脑了,其实这个时候加载图片的路径很可能是造成这个错误的主要原因。     我们在使用eclipse开发程序时,为了使各种文件安排得条理些,常常是java源文件放在src文件夹下,图片、声音等资源放在res文件夹下,在程序中我们在调用图片或其它资源时也是按照这样子的路径调用的,比如Image.createImage("/res/xxxx.png");这个看上去是正确的,但有时还是会造成空指针的异常,什么原因呢?
     首先,大家要明白eclipse在运行j2me程序的时候,调用的资源并非直接是res文件夹里的资源,而是build path(亦即\verified\classes)里的,也就是说当使用eclipse运行程序时,eclipse会自动在\verified\classes下生成相同的图片。但是不是所有的时候eclipse都会智能地为我们这么做呢?不是,这也就是我们好似从正确的路径中调用了图片,结果还是因为路径原因造成异常的原因。那要怎么做呢?如果不能自动地拷贝到bulid path目录,每次更新一次图片就要我们手动拷贝一次,岂不是很麻烦。网上有建议说“要注意是在eclipse操作界面里把图片拷进去的,而不能在资源管理器里把图片拷入res目录。前述方法,eclipse会自动在verified-classes下生成相同的图片”,其实这个说法并不很全面,所以经过试验,总结出下面几个方法(以下操作皆在eclipse中进行):
     一、在项目下新建两个Source Folder,注意不是Folder,一个src,一个res,然后在src下创建程序文件,将图片、声音等资源文件导入到res这个目录里面就可以了。这样我们在文件结构上就可以把源文件组织在src目录下,而资源文件放在了res目录中了。但是要注意在程序中调用图片时的路径是("/xxxx.png"),而不是("/res/xxxx.png"),因为一般来说source folder默认是加入了项目的java build path的,也就是其实图片放在了\verified\classes的目录下,如图:
关于eclipse中的图片路径_第1张图片
     二、在项目下新建一个Source Folder(src),然后在src下创建程序文件,同时可以在这里面新建个Package或Folder(res),将图片、声音等资源文件导入到res这个目录里面。这样我们在文件结构上就可以把源文件组织在src目录下,而资源文件也放在了src目录下里res目录中了。这样我们在程序中调用图片时的路径就可以是("/res/xxxx.png")了,如图:
关于eclipse中的图片路径_第2张图片
     三、在项目中把程序创建到src或src.xx.xxx这样的包中,在项目下新建一个res的Package或Folder,将图片、声音等资源文件导入到res这个目录里面。这样我们在文件结构上就可以把源文件组织在src目录下,而资源文件放在res目录里了。同时我们在程序中调用图片时的路径也是("/res/xxxx.png")了,如图:
关于eclipse中的图片路径_第3张图片
     总之,程序中资源的路径是由在\verified\classes下的路径决定的,如果程序在出现资源相关的异常,不妨到这个目录下看看具体的路径情况,以决定是否是路径问题。
     (PS:hehe~算是一篇菜鸟心得吧,本人水平还有限,不对的请多多指教!)

你可能感兴趣的