Das wundet mich nicht:
Im ersten Fall beauftragst du das Betriebssystem (Windows), eine normale bat-Datei zu starten. (Das klappt)
Im zweiten Fall, beauftragst du das Bertiebssystem (Windows), eine bat-Deitei zu starten, die in einem (gezippten) jar-File liegt. Java selbst weiß möglicherweise, wie es mit Datein in einem gezippten jar-File umgehen muss - aber das Betriebssystem weiß es nicht!
Das wundet mich nicht:
Im ersten Fall beauftragst du das Betriebssystem (Windows), eine normale bat-Datei zu starten. (Das klappt)
Im zweiten Fall, beauftragst du das Bertiebssystem (Windows), eine bat-Deitei zu starten, die in einem (gezippten) jar-File liegt. Java selbst weiß möglicherweise, wie es mit Datein in einem gezippten jar-File umgehen muss - aber das Betriebssystem weiß es nicht!
Der Frage war dumm gestellt von mir. Ich möchte nicht das man die .bat Datei öffnet, das war nur ein Beispiel. Ich möchte mit "renameTo" die Datei woanders hin verfrachten. Also z.B so:
Java:
publicclassDatei{publicDatei()throwsIOException{String name =System.getProperty("user.name");File file1 =newFile("File/Öffnen.bat")File file2 =newFile("C:/Users/"+name+"/Desktop/"+File1.getName());
file1.renameTo(file2);}
Also eigentlich will ich nur das die Dateien aus der JAR in bestimmte Speicherorte gelangen.
Sorry nochmal für die schlechte Frage.
In diesem Fall würde ich die Datei aus dem Jar über Resource as Stream öffnen (Musst mal goorgeln, ich habe den Code jetzt nicht im Kopf, mache ich zu selten).
Dann die Zieldatei über FileOutputStream erstellen und den Inhalt von Quelle nach Ziel kopieren (Findest Du auch, wenn Du einen Computer mit Internet-Anschluss hast, falls nicht, frag mal den Boris (bin ich schon drin?)).
Ein jar-File ist nichts anderes, als ein zip-File (mit anderem Namen),
Deshalb kannst du eie Datei aus eien jar-(zip-)File nicht so einfach in ein normales File kopieren.
Du musst schon die Tipps beachetn, die dir @Barista und @mihe7 gegeben haben.
String name =System.getProperty("user.name");InputStream is =getClass().getResourceAsStream("File/Öffner.bat");File file =newFile("C:/Users/"+name+"/Desktop/Öffner.bat");PathPath= file.toPath();Files.copy(is,Path,StandardCopyOption.REPLACE_EXISTING);
String home =System.getProperty("user.home");Path target =Paths.get(home,"Desktop","Öffner.bat");try(InputStream is =getClass().getResourceAsStream("File/Öffner.bat")){Files.copy(is, target,StandardCopyOption.REPLACE_EXISTING);}