5 - Que corra en Android, IOS principalmente y opcionalmente en Linux, Windows.
Sólo te digo esto. Si quieres una aplicación cliente que corra en android e ios vas a tener que usar dos lenguajes y dos herramientas de desarrollo muy diferentes, java y Objective-C más sus IDEs.
Para android esto te dará una idea de como va:
http://www.androidcurso.com/index.ph...riales-android
Para IOS lo siento, no puedo ayudarte.
Y luego si quieres una aplicación que también pueda correr sobre windows y linux, pues java vale, pero ya sería un tercer desarrollo independiente.
Otra cosa es que si es una aplicación web puedas hacer un único desarrollo con javaFX y acceder por un navegador desde cualquier otra plataforma. Si no, lo llevas claro.