Firing up a JVM twice for every CGI request (as well as the Perl interpreter) is going to be very slow, so I would consider a different approach.
However, to answer your question...
Firstly, I'm not sure what you mean by "without using inline".
You can run an external command in Perl (and grab the output) using backticks, as follows:
Here, param is the value you want to pass to your Java program, which will be in the arguments array that's passed to your main method. From your Java program, if you print to standard output, this will get picked up and saved in your $output variable in Perl.
my $output = `java -cp classpath ClassName param`;