I think there are multiple ways that you could do this, but from a high level what you need is to have the application packaged in a way that is consistent with the way you are trying to then execute the applications.
For your Web Application, you are going to want that to be the primary command. When the Java buildpack runs, it'll detect a Spring Boot application and create a start command that is capable of running your application. The simplest path is to not change your packaging in a way that would impact or break this. Just let the buildpack pick the start command and use it.
If you can java -jar your application locally and it launches your web application, then you should be all set. That should be enough for the buildpack.
Now, for your Batch application. If you have a joint code base, where the web and batch code is together in the same project & gets packaged up into the same JAR file, then it is just a matter of taking the command that is generated by the Java buildpack for your web application and modifying it to start a different class (and possibly also memory constraints). The rest of the command should be OK.
If you have separate codebases, then you need to somehow join the two. When you run cf push -p path/to/jar, the cf CLI is going to extract and upload all of the files in your JAR. This is why you need to join the two codebases because you can only upload one JAR file for your application.
I think a simple way to do this would be to just add all of the compiled code for your batch application under a subdirectory in the JAR like batch/... (Do be careful about the subdirectory you pick, you want to ensure that you're not exposing your batch application via download through your web application). It should upload just fine that way and it shouldn't impact the Java buildpacks ability to detect & run your web application.
You can then take the start command generated by the Java buildpack, adjust the classpath to point to the subdirectory, adjust the start class, optionally adjust memory settings and use that to start your batch application.
Again, I'm sure there are probably other ways you could compose things, but I hope this covers the constraining factors of Cloud Foundry & the Java buildpack so that you can mix things together in a way that is suitable for your project.