Gibt es eine möglichkeit Dateien aus der jar datei zu kopieren?

Diskutiere Gibt es eine möglichkeit Dateien aus der jar datei zu kopieren? im AWT, Swing, JavaFX & SWT Bereich.
J

JustNobody

Du hast eine Lösung auch für das Kopieren bekommen. Warum nutzt Du nicht den Files.copy Aufruf, der Dir gegeben wurde?

Ansonsten: Den Code, den Du zusammen gebastelt hast, muss man nicht groß kommentieren, oder?
Wenn Du nachvollziehen willst, was du da so gemacht hast:
- gib mal einfach "" + inF aus. (z.B. mit System.out.println) ==> "java.io.BufferedInputStream@77468bd9" wobei die Zeichen nach dem @ unterschiedlich sein können ...
- Schau einmal, was für einen String der FileInputStream entgegen nehmen möchte. Und dann überleg, ob die Ausgabe vom oberen Schritt da wohl gültig ist ...

Generell (und stark vereinfacht): Alles was direkt ein File im Klassennamen hat (File, FileInputStream, ...) sind Klassen, die direkt auf Dateiebene arbeiten. Also zur Not einfach einmal im Debugger oder mit System.out Werte anzeigen lassen und dann probieren: Klappt es in der Eingabeaufforderung denn?
Funktioniert ein "DIR java.io.BufferedInputStream@xxxxxxxxxx"? Da kann man also gut etwas spielen.
 
VPChief

VPChief

Zuletzt bearbeitet:
J

JustNobody

Dann hast du den Aufruf nicht so gemacht, wie er dir gesagt wurde, denn da war der zweite Parameter kein File....
 
J

JustNobody

Gebt ihm doch die Lösung dann ist Ruh:
Java:
	void extract(String filename) throws IOException {
		InputStream link = (getClass().getResourceAsStream("/path/resources/" + filename));
		Files.copy(link, new File(filename).getAbsoluteFile().toPath());
	}

Btw. So etwas kann schnell auch mal von einem Virenscanner als verdächtiges Verhalten eingestuft werden...
Das war der Code und auch der Link in dem Du es auch finden kannst ...
 
VPChief

VPChief

habe das jetzt von da übernommen, aber Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
 
J

JustNobody

Dann hast Du wohl etwas falsch gemacht.

Wenn Du keine Details bringst, dann können wir auch nicht ausführlicher schreiben, was Sache ist. Also wie immer:
- Zeig Deinen Code.
- Zeig den Stacktrace und markiere die Zeile, in der die NPE auftritt.

Oder ist das jetzt nur wieder ein Spielchen und Dir geht es gar nicht mehr um die Sache? Das müsste Dich doch schon so viel Zeit gekostet haben: Da einmal das erlesen der Grundlagen + Herumspielen und Du müsstest das Thema schon lange abgehakt und womöglich "Experte" in dem Bereich geworden sein ...
 
VPChief

VPChief

Code:
    private static void copyFile() throws IOException {


File file = new File(targetFile + "VP Kurznotitzen.exe");
if (!file.exists()) {
     InputStream link = (Install.class.getClass().getResourceAsStream("/VP Kurznotitzen 1.3.0/VP Kurznotitzen.exe"));
     Files.copy(link, file.getAbsoluteFile().toPath());
}
Die Stack Trace ist
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
in dieser Zeile Files.copy(link, file.getAbsoluteFile().toPath());
 
J

JustNobody

Dann noch einmal den Inhalt der jar Datei prüfen:
/VP Kurznotitzen 1.3.0/VP Kurznotitzen.exe
existiert in der jar Datei und ist auch genau so geschrieben (incl. Rechtschreibfehler)?

getResourceAsStream gibt null zurück, wenn der angegebene Pfad nicht gefunden wurde.
 
VPChief

VPChief

1598900505026.png
ist jetzt in meinem Projekt, in dem ich es umsetzen will.
Die datei funktioniert, würde sie gerne hier anhängen ist aber kein gültiges format
 
Zuletzt bearbeitet:
B

BestGoalkeeper

Dummi Frage, aber bist du sicher, dass die Datei beim Erstellen des JARs/Exportieren mit in das jar kopiert wird? Öffne das Jar mal mit einen Unzip Programm!
 
VPChief

VPChief

1598986968921.png
Aber funktioniert ja auch schon in der Ewiklungsumgebung nicht... mehr
 
mrBrown

mrBrown

Mach mal ein Bild von einer Ebene höher, also da wo die class-Datei liegt
 
mrBrown

mrBrown

Wie zur Hölle baust du deine Jar's zusammen, dass in der Jar irgendeine Zip Datei drin liegt, dann noch ein Ordner der wie die zip heißt, in dem Ordner eine Jar-Datei und ein Ordner, und alle gefühlt den gleichen Namen haben? o_O


Spontan würd ich sagen, an irgendeiner Stelle ist der Pfad falsch, erkennen kann ich da grad aber keinen Fehler.
Kannst du die zip (die exe darin ruhig gegen irgendeine txt-Datei austauschen) mal irgendwo hochladen?
 
mrBrown

mrBrown

Ahh, das ist auf jeden Fall nicht der Code, der dir vorgeschlagen wurde, du hast Install.class.getClass(), vorgeschlagen wurde nur getClass().

EDIT: Install.class ist in dem Fall das passende, das getClass() muss bei dir weg.
 
Thema: 

Gibt es eine möglichkeit Dateien aus der jar datei zu kopieren?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben