I don't use MySQL myself, so I might be wrong, but I suspect that the DELIMITER command is handled by mysql client and not by the database itself. The client parses the SQL script into individual SQL commands and servers them to the database, and the DELIMITER command just overrides the default delimiter. (A similar mechanism - and corresponding class of problems - exists in Oracle, which I'm familiar with.) There might be other client-only commands; see also this discussion.
You need to split your SQL script into individual commands and execute them one after another using JDBC's Statement. There should be just two statements: the DROP PROCEDURE and the CREATE PROCEDURE. I believe that the USE statement should be incorporated into your connect string instead, but again I can be wrong on this.