在程序中会遇到引用资源文件的路径问题,结合自己遇到的问题,总结如下:
我的eclipse工程的默认路径是F:/workbench,资源文件发在项目的res中,假如要在eclipse中运行时能显示资源文件(项目名为MyText,图片名为a.png),则路径为res/a.png,此路径表示在当前路径下寻找文件,当前路径即是F:/workbench/MyText/,或者./res/a.png也可,./表当前目录。但不能是/res/a.png,因为/表示是当前项目的根路径,即是F:,用/res/a.png当eclipse运行时寻找文件的路径是F:/res/a.png,这当然找不到。
但要想在程序打包后,jar放在别的地方也能显示图片,那上面所说的路径都不正确。这时应该用class.getResource(),如URL imageUrl = MyText.class.getResource("/res/a.png"),将程序打包后,在运行加载MyText时会到MyText的根路径jar包下去寻找资源,如我把jar放在桌面,那么用/res/a.png时程序寻找资源文件的完整路径是C:/Users/hwl/Desktop/mytext.jar!/res/a.png,(mytext为包名)这样肯定能找到所需的文件。如果是getResource("./res/a.png")或是res/a.png,则双击jar包时无反应。
至于在J2ME中则要特别注意,资源文件的路径不是res/a.png,而是/a.png。因为eclipse在新建一个midlet suit时默认的资源文件路径是res文件夹,故会自动到res下去寻找文件,在路径中不用再加res。可在Window->Preferences->J2ME->New Midlet Suit中看到Automactically use Resources Directory in New Projects是被打勾的,且Resources Directory 被设为res。