import disclaim.ianal.*; // Perhaps more appropriate for the case ;)

Adding to Jay's comments, here's a quote from the GPL FAQ which applies:
pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.


As a matter of semantics it would be better to have your program expect some external program to output symbol tables in coincidentally the same format that transmogrify does, rather than it expecting to run transmogrify. To be perfectly safe, you'd have to track down the copyright holders and beg or bribe them for a license to use their code in a commercial product. That brings up the issue that they could think your current practice is a violation and order you to stop, and whether that is a risk you are willing to take.

Turning to Google for advice, [link|http://w6.metronet.com/~wjm/tomcat/2000/Oct/msg00496.html|Here begins an interesting thread about Java, GPLed, and non-GPLed programs]. [link|http://w6.metronet.com/~wjm/tomcat/2000/Oct/msg00512.html|This message] is worth noting, as is [link|http://w6.metronet.com/~wjm/tomcat/2000/Oct/msg00537.html|this] and [link|http://w6.metronet.com/~wjm/tomcat/2000/Oct/msg00514.html|this].

[link|http://www.debian.org/doc/manuals/debian-java-faq/ch2.html#s2.3.4|Debian's Java FAQ] also has a section worth looking at.