After doing long researches I found the answer on the apple mailing list:
All I need to add to the sh script is this line before invoking the java command:
export CFProcessPath="$0"
And this really works like a charm!
This is my final code:
...
export CFProcessPath="$0"
exec java -jar ...
And as the question on the apple mailing list was another one, this not only works for handling drop events in the shell script but also for supporting OSX System Services thru JNI.