What is the format of EXTERNAL NAME argument?
The correct format is &lt;JAR name&gt;:&lt;class name&gt;.&lt;method name&gt;, &lt;class name&gt; is fully qualified, i.e. includes the package name. Since you are still getting this error, it's likely that your method signature does not comply with the convention you use. You don't specify the PARAMETER STYLE option, meaning DB2GENERAL is used by default, which is not recommended. Use PARAMETER STYLE JAVA and make sure the method signature is correct (public static void mth(int arg1) in your contrived example).
Note also that

For updating Java™ routines that are built into JAR files, you must issue a CALL SQLJ.REFRESH_CLASSES() statement to force the database manager to load the new classes. If you do not issue the CALL SQLJ.REFRESH_CLASSES() statement after you update Java routine classes, the database manager continues to use the previous versions of the classes. The database manager refreshes the classes when a COMMIT or ROLLBACK occurs. (source)