Oracle Java Cloud is especially appropriate for moderate to complex Java applications. Due to BYOL licensing, it is also works well when you are planning to do dev and test in-house and then deploy it on Oracle Java Cloud. It is not well suited for simple Java applications due to the cost of Oracle Java Cloud. Simple applications don't need the fully managed aspect of Oracle Java Cloud.
Configuring and then deploying Java applications is straightforward and can be done very easily.
Management console for Oracle Java Cloud is integrated with the rest of the IT stack, making it easy to figure out performance bottlenecks in Java applications and Java PaaS.
The tool can automate almost any workflow and infrastructure consumption. It has state of the art develop and support with great online training, online full manual set, and a comprehensive support team and network of SIs/VARS that are very qualified.
Google App Engine is great for Java applications where you are using other Google components already, for example Google GCP, Google BigQuery, etc. Redhat, OpenShift, and Pivotal CloudFounder are great when the application is very complex and includes components that are Java and non-Java based (Python, etc). Amazon AWS is more difficult to configure than Oracle Java Cloud - Oracle Java Cloud has simpler UI.
VMware is too hard to use, too expensive to support, and not a full lifecycle tool for workflows and Infrastructure (no support of physical either). AWS or Azure or Google solutions are good if you are only in the cloud and only using their tools. Not good if you have on-prem or non-Cloud based tools/infrastructure. Build it yourself automation frameworks can be good for people with unlimited funds, but they are not the best way to go and missing many capabilities typically.