I know this question has been asked many a times and all the time there is an answer which says about using an executable jar or making an .exe using launch4j or similar app
I have been using InnoSetup for a long time. It has always worked very well. It can do everything you need (unpack files, put shortcuts on desktop, start menu etc) and generates installers that we are used to.