Desktop.

kzimny

Mitglied
Hallo,

beim Versuch eine avi Datei über folgenden Aufruf zu öffnen:

Java:
File sFile = new File("c:/temp/xx.avi");
if(sFile.exists())
{
Desktop.getDesktop().open(sFile);
}

erhalte ich folgende Meldung:

******** ERROR ********************************************************
This program is improperly using Base::Config by not initializing config
with the Load functions
See the documentation in Base/Dev/index.html for usage instructions.
At the minimum, LoadCommandLine should be use with a dummy command line
consisting of the program name.
************************************************************************

sowohl über IDE als auch in der Kommandozeile.
Suche im Web brachte mich nicht weiter. Was mache ich falsch?
Eigentlich will ich die Datei nicht direkt abspielen sondern als Download anzeigen.

Viele Grüsse,
Krzysztof
 
Zuletzt bearbeitet:

faetzminator

Gesperrter Benutzer
Das klingt für mich ganz danach, als ob das Programm auch diese Meldung(en) ausgibt, wenn du das File xx.avi von Hand im Explorer öffnest. Es hat also weniger mit Java also mit der Konfiguration des Dateitypen (von Windows) zu tun.
 

kzimny

Mitglied
Die avi Datei lässt sich im Explorer öffnen.
Andere Dateien wie z.B. zip, ppt, xls kann ich mit dem Aufruf Desktop.getDesktop().open(sFile);
aus der Java-Anwendung öffnen.
Ich vermute das Problem liegt daran, dass die Dateien gleich mit der verknüpften Anwendung geöffnet werden.
Wer weiss wie ich eine Datei ähnlich wie im Web als "Download" aufrufen kann ohne das sie gleich geöffnet wird?
Bis für jeden Hinweis sehr dankbar.
 

faetzminator

Gesperrter Benutzer
Ja klar, das ist die Idee der von [c]Desktop[/c] zur Verfügung gestellten Methoden :) Dass du dich nicht mehr um das Handling von Dateien kümmern musst, wenn du diese öffnen oder drucken willst. Oder bei Webseiten...
Wo ist diese Datei? Wie greift der Client darauf zu (Browser? Applet? ...)?
 

kzimny

Mitglied
Es ist eine swing Desk-Applikation, der Benutzer arbeitet lokal auf eigenem PC/MAC.
Die Idee ist, dass auf die Dateien (avi, zip, mpeg) welche beim arbeiten erzeugt und
lokal gespeichert werden (auf einem usb-Stick, dabei spielt der Ort keine Rolle, der User hat dort die
vollen Berechtigungen) über ein klick direkt aus dem GUI "heruntergeladen" werden können.
 

faetzminator

Gesperrter Benutzer
Und inwiefern sind die Daten bei dir vorhanden? Irgendwo im Netzwerk? in einer Datenbank? In einem temporären Verzeichnis? Grundsätzlich musst du einfach die Daten per InputStream einlesen und dann über einen OutputStream in eine Datei speichern.
 

kzimny

Mitglied
>> per InputStream einlesen
Kein Problem.

>> und dann über einen OutputStream in eine Datei speichern.
Was heiss speichern, sie sind lokal, z.B. auf C:\temp\ schon vorhanden.
Ich will sie über ein Filedialog (Speichern/Ausführen/Abbrechen) aus dem GUI öffnen können.
Was muss ich dann mit dem OutputStreem tun?
 

faetzminator

Gesperrter Benutzer
Falls sich die temporäre Datei auf der gleichen Partition wie die Zieldatei befindet, kannst du folgendes verwenden: File (Java 2 Platform SE v1.4.2)
Dann müssen die Daten nicht kopiert werden. Allerdings solltest du den Returnwert auslesen, und wenn dieser negativ ist, eine Kopie erstellen.
Dies machst du mit den aktuellen Java-Versionen am einfachsten mit NIO. Hier siehst du den Vergleich zwischen IO und NIO mit Codebeispiel: NIO: High Performance File Copying
 

kzimny

Mitglied
Weil ich die Datei nicht nochmals erstellen wollte, habe mein Problem etwas anderes gelöst.
Die Datei wird zwar direkt mit einem verknüfpften Programm geöffnet, die Lösung stimmt für mich.

Java:
                    File sFile = new File("pfad zur Datei");
                    if(sFile.exists())
                    {
                        if(OSValidator.isWindows())
                        {
                            Process p = Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + sFile);
                        }
                        else
                        {
                            Runtime.getRuntime().exec(new String[]{"/usr/bin/open", sFile.getAbsolutePath()}); 
                        }
                    }

Danke und viele Grüsse,
Krzysztof
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Browser integriert in Desktop Applikation - Webcam interface not found Java Basics - Anfänger-Themen 26
B Robot auf virtuellem Desktop laufen lassen? Java Basics - Anfänger-Themen 4
D Verbesserungsvorschläge zur Struktur einer Client Server Desktop Chat App Java Basics - Anfänger-Themen 24
G Wie kann ich mein Quellcode als Programm vom desktop starten? Java Basics - Anfänger-Themen 1
D Ordner auf Desktop erstellen(Pc unabhängig) Java Basics - Anfänger-Themen 3
M Explorer oeffnen mittels java.awt.Desktop Java Basics - Anfänger-Themen 18
H Zugriff auf Desktop verhindern Java Basics - Anfänger-Themen 6
A Feststellen ob Desktop.print("*.pdf") fertig ist Java Basics - Anfänger-Themen 6
S jar File vom Desktop aus starten Ubuntu Java Basics - Anfänger-Themen 1
M Desktop App in Applet Java Basics - Anfänger-Themen 3
ElViZ Java App an Desktop "anheften"? Java Basics - Anfänger-Themen 8
M Auf Java (Desktop) Applikation mittels Webseite zugreifen Java Basics - Anfänger-Themen 6
M Statische und nicht-statische Funktionen: Desktop.browse(uri); Java Basics - Anfänger-Themen 4
hdi Mausposition auf Desktop ermitteln Java Basics - Anfänger-Themen 2
B Java Desktop Wecker problem Java Basics - Anfänger-Themen 3
hdi Desktop-Auflösung abfragen -> setLocation() von Frame Java Basics - Anfänger-Themen 5
T Desktop Anwendung Aufbau Java Basics - Anfänger-Themen 5
J Start mit .exe-Datei oder Desktop-Symbol möglich? Java Basics - Anfänger-Themen 12
A Desktop lauschen und beeinflussen Java Basics - Anfänger-Themen 5
M Frame zeigt Desktop als Hintergrund Java Basics - Anfänger-Themen 2
G Fenster auf Desktop pinnen? Java Basics - Anfänger-Themen 9
S Desktop Animation Java Basics - Anfänger-Themen 15
D Desktop auf nem Panel Java Basics - Anfänger-Themen 6
S File & Desktop Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben