Your main-method is very long. Shorten it. Split the task that the main method solves in several smaller ones, and implement a method each.
Now you may argue, that your main method is not THAT long. You didn't provide any code, but an educated guess would be, that you initialize a rather huge array in the main method. Well, then my comment above doesn't really apply. One thing you should know about Java, is that array inialization generated byte-code. Hence, you easily exceed the 64KB limit for a method, even though it does not contain to much code. Don't initialize arrays like that. Save the data in a file, and upload the file along with the NXT. Then load that file into an array. Alternatively, you can encode the data into a Java String (which is somewhat tricky due to when the \uXXXX escapes are replaced), and then convert the String to the array you intend to create.