Blackmonkey01 Geschrieben 18. Juli 2011 Teilen Geschrieben 18. Juli 2011 (bearbeitet) Hallo, Ich will mein Programm unter der Abteilung, Systemdatum und -zeit abspeichern. Aber er bringt mir immer einen Fehler. Weis wer warum ? SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy_hh:mm:ss"); Timestamp time = new Timestamp(System.currentTimeMillis()); String zeit = sdf.format(time); String filename = "/" + division + "_" + zeit + ".xml"; System.out.println(filename); System.out.println(JGui.st_save_directory + filename); StreamResult result = new StreamResult(new File( JGui.st_save_directory + filename )); Transformer transformer = TransformerFactory.newInstance() .newTransformer(); transformer.transform(source, result); Die Ausgabe des Compilers: /B-SB0E_18.07.2011_03:36:54.xml C:\Dokumente und Einstellungen\v209006/Desktop/B-SB0E_18.07.2011_03:36:54.xml [COLOR="red"]javax.xml.transform.TransformerException: java.io.FileNotFoundException: C:\Dokumente und Einstellungen\v209006\Desktop\B-SB0E_18.07.2011_03:36:54.xml (Falscher Parameter)[/COLOR] Falls das hilft so war es vorher: StreamResult result = new StreamResult(new File( JGui.st_save_directory + "/data.xml" )); Da ist doch nichts anders nur das ich direkt reinschreibe... Danke schonmal. Bearbeitet 18. Juli 2011 von Blackmonkey01 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LinuxDoku Geschrieben 18. Juli 2011 Teilen Geschrieben 18. Juli 2011 Unter Windows darf ein Dateiname keinen Doppelpunkt enthalten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
2K1.INC Geschrieben 18. Juli 2011 Teilen Geschrieben 18. Juli 2011 C:\Dokumente und Einstellungen\v209006/Desktop/B-SB0E_18.07.2011_03:36:54.xml du used Slash und Backslash... Windows nutzt Backslash C:\Dokumente und Einstellungen\v209006\Desktop\B-SB0E_18.07.2011_03:36:54.xml so sollte es passen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Blackmonkey01 Geschrieben 18. Juli 2011 Autor Teilen Geschrieben 18. Juli 2011 Hmpf danke hätt ich eigentlich wissen sollen ^^ @ Linuxdoku Also das mit Slash und Backslash macht Java schon geht auch so irgendwie. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
2K1.INC Geschrieben 18. Juli 2011 Teilen Geschrieben 18. Juli 2011 das auch ^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
afo Geschrieben 18. Juli 2011 Teilen Geschrieben 18. Juli 2011 du used Slash und Backslash... Windows nutzt Backslash Das ist so nicht richtig. Die Lage ist komplexer, lässt sich für die meisten Zwecke aber auf die Aussage, dass beides geht eingrenzen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
eifeljeti66 Geschrieben 19. Juli 2011 Teilen Geschrieben 19. Juli 2011 Ersetze mal alle Slashs und Backslashs mit \\. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
2K1.INC Geschrieben 20. Juli 2011 Teilen Geschrieben 20. Juli 2011 Hallo, [COLOR="red"]javax.xml.transform.TransformerException: java.io.FileNotFoundException: C:\Dokumente und Einstellungen\v209006\Desktop\B-SB0E_18.07.2011_03:36:54.xml (Falscher Parameter)[/COLOR] das mit dem ist so nicht ganz korrekt ist total richtig... selbst der compiler bei der fehlerausgabe mach aus dem slash ein backslash weil windows backslashes hat der compiler ist nur so intelligent um zu merken das es ein backslash sein muss... genau aus diesem grund ist java nicht plattformunabhängig weil die jvm für jedes os bereitgestellt werden muss damit java überhaupt funkt... die jvm ist nicht plattformunabhängig. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 20. Juli 2011 Teilen Geschrieben 20. Juli 2011 das mit dem ist so nicht ganz korrekt ist total richtig... selbst der compiler bei der fehlerausgabe mach aus dem slash ein backslash weil windows backslashes hat der compiler ist nur so intelligent um zu merken das es ein backslash sein muss... genau aus diesem grund ist java nicht plattformunabhängig weil die jvm für jedes os bereitgestellt werden muss damit java überhaupt funkt... die jvm ist nicht plattformunabhängig. Was? Ich habs drei mal gelesen aber nicht verstanden. :confused: Zum Thema \ oder /. Daür gibts in der File Klasse die separator Konstanten die man dafür verwendet. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sporticus Geschrieben 20. Juli 2011 Teilen Geschrieben 20. Juli 2011 (bearbeitet) Ob / oder \ ist unter Windows egal. Ich zitiere von Windows: Ein Dateiname darf keines der folgenden Zeichen enthalten: \ / : * ? " < > | Vielleicht änderst du das einfach mal in deinem Code, vielleicht klappts ja dann. Das... B-SB0E_18.07.2011_03:36:54.xml ... ist demnach kein gültiger Dateiname unter Windows Grüße Sporticus Bearbeitet 20. Juli 2011 von Sporticus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sacaldur Geschrieben 20. Juli 2011 Teilen Geschrieben 20. Juli 2011 Windows kommt sowohl mit einem Backslash, als auch mit einem Slash klar (unabhängig von der JVM, jdeoch schließe ich Sonderfälle nicht aus, wozu Netzwerkadressen o.ä. gehören könnte) auch wenn es egal ist, sollte man dennoch das systemspeziefische Zeichen verwenden, da dies eleganter ist man kann an das systemspezifische Zeichen über File.separator oder System.getProperty("file.separator") gelangen (letzteres ist wie man sehen kann ein Methodenaufruf und kann unter besonderen Bedingungen langsamer als das 1. Beispiel sein, zumal der Parameter ausgewertet werden muss) wie auch schon geschrieben wurde liegt nicht daran der Fehler, sondern am Doppelpunkt hierfür sollte ein anderes Zeichen (Punkt, Bindestrich, unterstrich, Leerzeichen) oder kein Zeichen verwendet werden Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
2K1.INC Geschrieben 21. Juli 2011 Teilen Geschrieben 21. Juli 2011 wie auch schon geschrieben wurde liegt nicht daran der Fehler, sondern am Doppelpunkt hierfür sollte ein anderes Zeichen (Punkt, Bindestrich, unterstrich, Leerzeichen) oder kein Zeichen verwendet werden das der fehler nicht daran liegt wurde schnell klar, jedoch akzeptiert windows selbst nur \ wie man in der fehlerausgabe sieht ändert windows / automatisch in \ um... dies liegt aber nicht daran das es egal ist ob / oder \ sondern nur um fehler zu vermeiden. selbst in der console wird ein / durch \ ersetzt um so fehler zu vermeiden! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sacaldur Geschrieben 21. Juli 2011 Teilen Geschrieben 21. Juli 2011 in welchem Fall würde es denn zu einem Fehler führen? mir ist nur bekannt, dass man bei Netzwerkpfaden ein \\ am Anfang setzen muss (und kein //, da dies entweder nicht als Anfang eines Netzwerkpfades oder als Anfang einer Internetadresse unter wegfall von http: erkannt wird) dass ein / durch ein \ ersetzt wird, heißt doch, dass auch / akzeptiert werden, oder nicht? um auf deine Aussage einzugehen: selbst der compiler bei der fehlerausgabe mach aus dem slash ein backslash weil windows backslashes hat der compiler ist nur so intelligent um zu merken das es ein backslash sein muss... nein über der Fehlerausgabe ist die Ausgabe der Zeichenkette zu sehen, über welche auf die Datei zugegriffen wird und man kann erkennen, dass dort keine ersetzung stattgefunden hat das Programm wurde aber nach dem Kompilieren ausgeführt (als der Compiler schon lange fertig war) der Compiler kann es auch aus dem Grund nicht sein, da der Code für die JVM kompiliert wird nicht für Windows nicht für Unix etc ... genau aus diesem grund ist java nicht plattformunabhängig weil die jvm für jedes os bereitgestellt werden muss damit java überhaupt funkt... die jvm ist nicht plattformunabhängig. Java ist plattformunabhängig man kann den gleichen Quelltext auf verschiedenen Betriebssystemen laufen lassen zudem ist ein Java Programm unabhängig von der zugrunde liegenden Prozessorarchitektur das Programm ist lediglich von der JVM abhängig (sie muss je nach Einstellungen bei der Kompilierung auf einer bestimmten oder neueren JVM-Version laufen) und die JVM wiederum ist abhängig (das hattest du wieder geschrieben) von Betriebssystem und Prozessorarchitektur sollte die Unabhängigkeit einer Sprache gegenüber dem System vom Dateitrennzeichen abhängig sein, dann sind so gut wie alle Sprachen, mit denen man auf Dateien zugreifen kann einfach nciht plattformunabhängig -> auch interpretierte Sprachen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dragon8 Geschrieben 22. Juli 2011 Teilen Geschrieben 22. Juli 2011 das der fehler nicht daran liegt wurde schnell klar, jedoch akzeptiert windows selbst nur \ Das ist einfach mal falsch. Es ist zwar auf jeden Fall sauberer bei Windowspfaden den Bachslash zu benutzen, aber Windows selber kommt auch mit dem Slash innerhalb von Pfaden klar. And that's how the "\" character was chosen. [...] The DOS developers weren't particularly happy about this state of affairs - heck, they all used Xenix machines for email and stuff, so they were familiar with the *nix command semantics. So they coded the OS to accept either "/" or "\" character as the path character (this continues today, btw - try typing "notepad c:/boot.ini" on an XP machine (if you're an admin)). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sporticus Geschrieben 22. Juli 2011 Teilen Geschrieben 22. Juli 2011 Könnt ihr mal bitte wieder "Back to Toppic" kommen!!! Wir haben das mit dem / und \ denke ich mitlerweile alle verstanden und damit geklärt. Das eigentliche Problem sind immer noch die Doppelpunkte im Dateinamen! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
2K1.INC Geschrieben 22. Juli 2011 Teilen Geschrieben 22. Juli 2011 Könnt ihr mal bitte wieder "Back to Toppic" kommen!!! Wir haben das mit dem / und \ denke ich mitlerweile alle verstanden und damit geklärt. Das eigentliche Problem sind immer noch die Doppelpunkte im Dateinamen! das man sowas nicht macht lernt jeder klickwilde user der einmal ne datei/ordner erstellen wollte... sein problem ist ja schon gelöst Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.