Assuming you haven't found a JAVA solution and as you suggested, it would be fairly straight forward to execute a Perl command from JAVA passing in appropriate arguments, then process its response from stdout. This seems like a perfectly ok technique to use. I have never written JAVA before, but here it goes...
// http://docs.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html
Process p = new ProcessBuilder("/usr/bin/perl script.pl", "arg").start();
System.out.println(p.getInputStream()); // script.pl stdout
System.out.println(p.getErrorStream()); // script.pl error
You could use WordNet::SenseRelate::TargetWord
to perform the core disambiguation, printing what you want to return to stdout.