Tienes la solución fácil
Cita: FilenameUtils.getName(filename)
Evidentemente, los de apache saben que este problema se va a presentar, y han añadido un método para corregirlo.
De forma manual y que sirve para aprender un poco más
\ se utiliza como elemento para escapar otros caracteres, por lo que para evitar ambigüedades, cuando quieres escribir el caracter \ tienes que usar \\
Cita: StringTokenizer g = new StringTokenizer(ruta, "\\");
Y curiosamente, si quieres usar el método split(), por ser el parámetro una regex
La regex se convierte en String, por lo que para tener una String "\\" necesitas escapar dos barras. No me parece que esto tenga mucha lógica, pero será por el funcionamiento de las regex.
Luego tienes el problema de que en función de qué servidor uses, esto no vale para Linux.
FilenameUtils ya lo tiene en cuenta, pero para que tu código "manual" sea independiente del SO del servidor
Cita: StringTokenizer g = new StringTokenizer(ruta, File.separator)