I have the following file layout (your typical eclipse layout) :
Now image ImageLoader loads an image using the path "images/img.png". This will run fine in eclipse, but I'd like to be able to run this code via the command line without breaking eclipse compatibility. It seems that using something like "java pkg1/Main" from the bin directory will seek "bin/images/img.png" which of course does not exist. I tried adding the project directory to the classpath, without success.
So, is my intuition right and are pathnames relative to the location where to code actually resides and not to all possible locations in the classpath ?
Also, how could I use the java command to successfully run the program without breaking eclipse compatibility ?
Move the images folder inside your bin folder, then use Class.getResource(AsStream) or ClassLoader.getResource(AsStream). If you put the images folder inside your source folder and refresh the project it will be copied to the bin folder automatically by Eclipse. This will ensure that the images will not be thrown away when the bin folder is rebuilt.