a) The language you are most familiar with. I hope you won't choose assembler or other low level language
b) That's not easy to explain. As I already said you have to build a graph corresponding to your map, you can't do anything with regular image file. Each node can contain the coordinates of the junction it represents on the real map, so you will be able to draw the path on the original image. If the user choose to start from the middle of the street (not from junction) just add one more node to your graph in this place with just two edges.
c) I don't think I understand the quiestion. Probably you will have to create dozen of image objects during your work, and sure you can use netbeans IDE.
d)You can, but you don't have to. You can use regular binary file to save the data.
e)It's easy, after you find the shortest way, remove the edges you just used and repeate the search.