Hallo ich habe mir ein Programm gemacht wo man ein Passwort eingeben soll und wenn man es 3 mal falsch eintippt soll sich die .jar Datei selbst löschen. Hat da jemand eine Idee? Ich habe schon Ansätze:
Java:
File f =newFile("C:/Test/Passwort.jar");if(f.exists()){
f.delete();
Mfg
PS.: (Hab natürlich auch schon importiert) & habe auch keine Fehlermeldungen
Denn es ist ja klar, das ein simples Umbenennen der JAR das aushebelt.
Überhaupt kannst du ja wohl nichts dagegen machen, das der User mehrere Kopien anlegt, oder?
Und eine JAR löschen, nur weil der User sich vertippt hat, geht ja wohl gar nicht.
Und ob es überhaupt immer möglich ist, einer laufende Applikation die JAR unterm Popo wegzulöschen, weiß ich auch nicht, Könnte nämlich sehr von der Umgebung/Betriebssystem abhängen.
Haha ja sorry, es ist ein Fun-Programm
Ich selbst bewahre dort keine Staatsgeheimnisse auf und habe es auch nicht vor.
Ich lerne nur gerade programmieren und deshalb schreibe ich einige Programme, um mich mit Java vertrauter zu machen.
Funktioniert leider nicht.. ich habs jetzt so gemacht:
Java:
if(Richtig==0){JOptionPane.showMessageDialog(null,"Datei löscht sich nun selbst","FAIL",JOptionPane.INFORMATION_MESSAGE);File f =newFile("C:/Test/Passwort.jar");
f.deleteOnExit();
FUNKTIONIERT NICHT ist (i. d. R.) keine Fehlerbeschreibung !!
Kommen ggf. Fehlermeldungen (Stacktrace) ?
Was ist mit den von ARadauer erwähnten Rückgabecodes?
Ist der Dateipfad richtig?
Evt. schon mal SO versucht?
Java:
newFile("C:\Test\Passwort.jar");// vlt. auch mit ZWEI Backslashes !
erstmal : unter windows wird das mit einem JAR so erstmal überhaupt nichts ... da unter windows die VM ein JAR das verwendet wird grundsätzlich sperrt
versucht man jetzt mit reflections den system-class-loader (als urlclassloader gecastet) zu closen crasht die VM mit nem ERROR und das file ist noch vorhanden
lösung (zumindest konnte ich damit erfolg verzeichnen) : ein einfaches class-file
ich weis nicht warum, aber wenn man ein class-file als deleteOnExit() kennzeichnet wird dies bei "normalen" stop der vm auch gelöscht
unter unix solltest du, abhängig vom FS, das file auch direkt während der runtime löschen können