First of all, you don't want to have 300 threads running in parallel. You need to create only so many threads your HW can handle. If your threads start to compete for CPU, or - worse - IO, the overall performance will degrade, perhaps massively.
Alleviating the overhead of starting the JVM 300 times might be a good idea, especially if the jobs are relatively fast. If it is not the case, eg. one job runs for a minute or more on average, I'd say the JVM creation overhead could be acceptable.
If you do want to process everything in one go, then I'd suggest storing the parameters for all 300 jobs into some sort of a text file (easily doable by a shell script on Unix) - one line per job. Your app would then read the job parameters from it and could easily distribute them among worker threads it would manage. A producer/consumer design
pattern looks like a good match for your needs - try to google it up if you didn't hear about it yet.
Edit: from your description I understood your jobs are some sort of utility jobs, with no user interaction. If that is the case I don't see any benefit in turning it into a web app.