¿Cómo puede un archivo JAR eliminarse a sí mismo?
Necesito un archivo JAR para eliminarlo.
El problema es que Windows bloquea el archivo JAR mientras se está ejecutando y no puede eliminarse directamente.
He buscado soluciones en las que un script por lotes podría matar el proceso JAR y luego eliminar el archivo, pero
System.exit(0)
no se desea porque no se puede ejecutar a través deBatch
archivo.taskkill /F /IM "java.exe"
no se desea porque mataTODAS Java
procesos.jps
No puede ser usadoporque solo está disponible enJDK
y los usuarios pueden ejecutar unJRE
entonces eso fallaría.Estoy atascado en la búsqueda de una solución que me permita encontrar elPID
de la corrienteJAR
utilizandoJava
código, luego escribiendo unBatch
comando e insertando elPID
que mata el proceso, p. como el siguiente:
printWriter.println("taskkill /PID " + currentJARPID);
Si se pregunta para qué sirve esto, puede verificaresta responder.