Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Kann man eine Datei die vor der Erstellung der RunnableJar, im "src" Verzeichnis liegende Datei bla.jar beim Ausführen an einen anderen Ort verschieben\kopieren?
also es geht darum eine .jar zu haben die bein aufruf ein Autostart eintrag in die registry schreibt. anschließend soll sie eine jar datei aus sich selber an einen bestimmten Pfad kompieren..
Ich hab alles hinbekommen außer das die Datei sich verschiebt.. hier mein Code:
(datei befindet sich zurzeit des Programmierens im SRC ordern..
wenn ich es im test aus eclipse starte verschiebt er die datei.. wenn ich es kompiliere klappt es nicht mehr)
Java:
public static void mainVerschieben(){
try {
File quellDatei = new File("src\\main.jar");
System.out.println(quellDatei.toString());
File zielDatei = new File("c:\\windows\\src\\main.jar");
quellDatei.renameTo(zielDatei);
System.out.println("Ausgeführt");
} catch (Exception e) {
System.out.println("FEHLER BEIM VERSCHIEBEN");
}
}
Vielleicht müsste ja vor File * src\\main.jar"); iwie ein Zeichen das relativ was angibt oder so??
Es gibt keine exeptions es passiert einfach nichts.. wenn ich das programm im test starte verschiebt er das wenn ich mein Projekt als jar exportiere verschiebt er die datei nicht aus sich selber???
Ich glaube eher, dass es daran liegt, dass sich eine Datei nicht selber verschieben kann. Verschieben heisst an einem Ort löschen und da die Datei gerade ausgeführt wird geht das nicht.
Das zweite Thema sind die Schreibrechte im Zielordner ...
Warum willst du denn eine JAR in die Windows-Registry verschieben? Ich weiß nicht, das klingt alles nach großem Käse. Und irgendwie finde ich, dass sich das nicht gehört, einfach dem Benutzer irgendwelche Dateien irgendwohin zu schieben.
Nein die Jar soll nicht in die Registry... Och Mädels
Also es ist eine Jar datei...
Man ruft sie auf und dann kommt ein Fenster.. Installieren.
Wenn man auf den Button drückt soll eine Jar datei an einen Ort geschrieben/kopiert (wie auch immer) werden.
Anschließend wird eine Batch Datei aufgerufen die einen Autostart Registry Eintrag macht an die stelle wo die kopierte Jar sich befindet.
Meinetwegen kann sich die Jar auch einfach in den Autostart ordner kopieren ist egal...
Das Programm soll halt nach der "Installation" immer wenn man den PC startet aufgerufen werden aber ich bekomme das nicht hin.
Im großen und ganzen geht es um einen Downloader der von einer bestimmten Seite FreeMusik lädt.. und wenn man denquasi "installiert" soll er bei Systemstart aufgehen und da weiterladen wo er aufgehört hat.
Hab alles hinbekommen außer das ich die Jar datei an einen angegebenen ordner bekomme :autsch:
Wenn du unbedingt willst, dass ein Java-Programm sich selbst kopiert, dann könnte man das so machen (hier nur ein ganz einfaches Beispiel - Packages, innere Klassen etc. musst du dann je nach Notwendigkeit anpassen):
Java:
import java.io.*;
public class SichKopierendeKlasse {
public static void main(String[] args) throws IOException {
SichKopierendeKlasse s = new SichKopierendeKlasse();
String name = SichKopierendeKlasse.class.getName();
System.out.println(name);
BufferedInputStream is = new BufferedInputStream(new FileInputStream(
"src/" + name + ".java")); //src ist mein Eclipse-Ordner
BufferedOutputStream os = new BufferedOutputStream(
new FileOutputStream("src/" + name + "2.java"));
int x;
while((x = is.read()) != -1) {
os.write(x);
}
os.close();
is.close();
}
}
die Rede ist. Kannst du ja nochmal verifizieren. Da müssen offenbar die Verknüpfungen rein, wenn bei der Anmeldung dieses bestimmten Nutzers dieses oder jenes Programm gestartet werden soll.
Wie man dann mit Java so eine .lnk-Datei (also eine Verknüpfung) anlegt, so dass diese auf deine JAR zeigt, musst du dann noch selbst herausfinden.
Werden denn die Nutzer deines Programms wenigstens gefragt, ob sie so einen Autostart-Eintrag überhaupt haben möchten, oder wird der so oder so auch ohne ihr Einverständnis angelegt? Falls sie nicht gefragt werden, würde ich an deiner Stelle nochmal darüber nachdenken, da sich Nutzer von sowas schnell genervt fühlen können (gibt eh schon so viel Software, die meint, noch hier eine schöne Desktop-Verknüpfung und da noch einen netten Schnellstartleistenshortcut anlegen zu müssen…).
Im Übrigen verdirbst du dir damit auch die (weitgehende) Plattformunabhängigkeit von Java, da die ganze Sache unter Linux, BSD, Mac etc. so nicht funktionieren wird.
Ich hoffe, ich habe dich diesmal besser verstanden.