resumen que proposito historia filosofia extension evolucion java cross-platform

que - proposito de java



¿Qué problemas impiden que las aplicaciones Java funcionen en múltiples plataformas? (8)

Se supone que Java es "escribir una vez, ejecutar en cualquier lugar" y realmente puede ser, pero en algunos casos se convierte en "escribir una vez, depurar en todas partes".

¿Cuáles son las razones más comunes de los problemas al mover una aplicación Java de una plataforma a otra?

¿Qué son razones poco comunes pero interesantes?


Usar JNI es algo que se debe analizar. Proporcionar la biblioteca nativa para cada plataforma objetivo puede reducir este problema.


Usar clases de los paquetes com.sun.* Que vienen con Sun JDK.


Asumiendo que puede escribir en el directorio que contiene sus aplicaciones.


Hay muchas JVM diferentes, por lo que dependiendo de cuál haya instalado el cliente en su caja, es posible que obtengan resultados ligeramente diferentes.


Pocos de la zona UI:

  • Orden incorrecto de botones como OK / Cancel
  • Usar diseños absolutos
  • Diferentes teclas aceleradoras
  • Diferentes tamaños / representación de fuentes
  • Esperando que ciertas claves estén presentes (tecla de Windows, tecla Meta)

(Sin embargo, estos no son específicos de Java)


Solo puedo hablar por experiencia personal. Estas son cosas que he visto:

  1. El subprocesamiento se abstrae de forma diferente en algunas arquitecturas, por lo que hay ligeras diferencias en los retrasos y posiblemente en los pedidos. (Lo que podría conducir a algunas condiciones de carrera)
  2. Controlar los estados del teclado (bloqueo de mayúsculas, bloqueo numérico, etc.) no siempre funciona como se esperaba (Linux no me permitió cambiar el bloqueo de mayúsculas a deshabilitado v1.5 en ese momento)

  • No haga suposiciones sobre el caso (en) la sensibilidad del sistema de archivos
  • No hagas suposiciones sobre la ruta o el separador de directorio
  • No hagas suposiciones sobre el terminador de línea
  • No use la codificación de plataforma predeterminada a menos que esté realmente seguro de que quiere
  • No inicie "cmd.exe", etc. (lo sé, parece obvio, pero lo he visto causar problemas)

Fuera de mi cabeza ... algunos de estos sucedieron en el trabajo

  • JNI

  • La herramienta de desarrollo introdujo caracteres en literales de cadenas formateados que funcionaban con Windows pero que no funcionaban en Linux (esto en realidad sucedió)

  • Incoherencias del sistema de archivos (acoplamiento apretado de una aplicación a un entorno)

  • El hardware subyacente, como la memoria disponible o núcleos, podría provocar un cambio de comportamiento