Hola Dan, ejercicio bien resuelto. Ya que vas bien y se ve que tienes interés te planteo cuestiones para que tengas en cuenta.
Has declarado variables de clase:
static Scanner in = new Scanner(System.in);
static String palabra1, palabra2;
static int mayor, menor, aux;
Esto puede aceptarse, pero no parece un planteamiento realmente bueno. ¿Para qué queremos definir variables de clase pudiendo hacerlo con variables temporales propias del método main?
No es necesario puesto que el ejercicio está bien resuelto, pero te voy a plantear algo que sería útil para trabajar como lo haría un programador en programación orientada a objetos (realmente a esta escala de pequeños ejercicios es más difícil de plantear por la poca extensión de código, pero se puede hacer). Esto ya sería más de lo que pide el ejercicio realmente.
Planteamiento alternativo:
Definimos una clase denominada ComparadorPalabras. Esta clase no tiene atributos sino un único método, denominado compararPalabras (String palabra1, String palabra2), que se encarga de realizar la lógica de comparación y mostrar los mensajes oportunos por pantalla.
Definimos otra clase denominada GestorEntradas que básicamente permite pedir un dato.
En la clase con el main creamos un objeto GestorEntradas y lo invocamos cuando sea necesario para pedir las palabras. Por otro lado creamos un objeto ComparadorPalabras e invocamos su método pasándole las dos palabras.
Planteamiento doblemente alternativo: definir el método para comparar palabras como String compararPalabras (String palabra1, String palabra2) de modo que el método no se encarga de mostrar nada por pantalla, simplemente lo que hace es devolver un String con el resultado de la comparación. Quien se encargará de mostrar ese String por pantalla será el método main. Por ejemplo un String podría ser este:
"Primera palabra: calzo
Segunda palabra: cabeza
¿Letra 1 es igual en las dos palabras? true
¿Letra 2 es igual en las dos palabras? true
¿Letra 3 es igual en las dos palabras? false
¿Letra 4 es igual en las dos palabras? false
¿Letra 5 es igual en las dos palabras? false
¿Letra 6 es igual en las dos palabras? La palabra 1 no tiene letra 5
"
Es un String largo, pero es un String.
El resultado con cualquier planteamiento de estos no varía respecto al que has obtenido tú, pero si analizas los planteamientos extraerás cosas interesantes de ellos.
Saludos