Desktop browse(URI uri)

I

ItsMeMario2

Gast
Hi Leute,

hab ein kleines Problem mit der Java Klasse Desktop.

Java:
public static void open(URI uri) throws URISyntaxException, IOException {
	if(Desktop.isDesktopSupported()) {
		Desktop desktop = Desktop.getDesktop();
		
		if(desktop.isSupported(Desktop.Action.BROWSE)) {
			desktop.browse(uri);
		}
	}
}

Hab das Betriebssystem gewechselt von Windows 7 auf Windows 8.
Wenn ich die oben gepostete Methode unter Windows 8 aufrufe
passiert garnichts, Java GUI friert ein (Nein, kein EDT unterbrochen ;))

Unter Windows 7 kein Problem. Ist das nun ein OS Problem?
Wenn ja, gibts da schon nen Workaround?
 

xehpuk

Top Contributor
Bei mir läuft folgender Code wie erwartet unter NetBeans 7.3 Beta 2 und der Kommandozeile:
Java:
import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;

public class DesktopBrowser {
	public static void main(final String... args) throws IOException {
		System.out.println(open(URI.create("http://www.java-forum.org")));
	}

	public static boolean open(final URI uri) throws IOException {
		if (Desktop.isDesktopSupported()) {
			final Desktop desktop = Desktop.getDesktop();
			if (desktop.isSupported(Desktop.Action.BROWSE)) {
				desktop.browse(uri);
				return true;
			}
		}
		return false;
	}
}
 

TKausL

Top Contributor
[OT]Ich wusste garnicht dass
Java:
main(final String... args)
auch erlaubt ist, seit wann ist das so?[/OT]
 
T

trääät

Gast
ich glaube das hängt damit zusammen das VarArgs intern als array verwendet wird womit die normalform main(String[]) ja eingehalten wird ...
und ob du es FINAL machst oder nicht ist dir überlassen und nicht vorgeschrieben
 

TKausL

Top Contributor
ich glaube das hängt damit zusammen das VarArgs intern als array verwendet wird womit die normalform main(String[]) ja eingehalten wird ...
und ob du es FINAL machst oder nicht ist dir überlassen und nicht vorgeschrieben

Ich bin mir aber ziemlich sicher dass:
Java:
private void test(String... test){

}
/* Irgendwo dann: */
String[] bla = {"Hallo", "Bye"};
test(bla);
einen Fehler wirft. Kann mich aber auch irren ???:L
 
T

trääät

Gast
nope ... das geht .. genau so wie es da steht ...

als einfachstes beispiel brauchst du dir doch nur mal aus den reflections Method.invoke(Object, Object...) ansehen ...
wenn man diese wrapt weil man z.b. noch einen zusätzlichen parameter einbringen will kann sowohl arrays als auch normale varargs nutzen ... habs selbst schon in beide richtungen ausprobiert ...
 
D

Dow Jones

Gast
Offtopic: Falls jemanden die drei Punkte näher interessieren: Nach Ellipse oder variadische Funktion googeln. Braucht man halt wenn man zur Compilezeit noch nicht sagen kann wieviele Parameter eine Methode übergeben bekommen soll.
 

xehpuk

Top Contributor
Der einzige Unterschied im Bytecode zwischen Array und VarArgs ist, dass bei der Methode das Flag
Code:
ACC_VARARGS
gesetzt ist.
 
T

trääät

Gast
Wikipedia hat gesagt.:
Auch in Java verwendet man in der Deklaration die Ellipse. Hier spricht man von Methoden mit variabler Argumentanzahl, oder kurz Varargs.[4] Im Gegensatz zu C und C++ wird aber der Typ mit angegeben. Im Hintergrund wird die Parameterliste in ein Array übersetzt, so dass auch innerhalb des Funktionsrumpfes der Parameter wie ein Array behandelt werden muss.[5]

wobei fußnote [4] auf einen nicht mehr gültigen link in der java-insel verweist und fußnote [5] direkt zur doc von oracle : Varargs

welche auswirkungen dies direkt auf den byte-code und dessen flags hat wird leider nirgendwo genannt ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M java.awt. Desktop browse lokale datei aus jar Allgemeine Java-Themen 4
J Integration pay Pale in eine JavaFx Desktop Application Allgemeine Java-Themen 1
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
_user_q Verknüpfung einer .jar-Datei (liegt z. B. auf dem Desktop) im Autostart-Ordner erstellen? Allgemeine Java-Themen 20
L Nach dem Login // Java Desktop Software Allgemeine Java-Themen 7
Neumi5694 Desktop.getDesktop().open(...); Allgemeine Java-Themen 0
R Java-Forum als Desktop-Background Allgemeine Java-Themen 4
OnDemand Desktop-Applikation schreiben, wie daten persistent? Allgemeine Java-Themen 9
M Desktop jar File icon Ändern? Allgemeine Java-Themen 14
D Ordner auf Desktop erstellen(Pc unabhängig) Allgemeine Java-Themen 5
M Desktop Symbole ein / ausblenden Allgemeine Java-Themen 1
G Desktop open() - Problem mit Media Player Allgemeine Java-Themen 4
N Robotklasse nur auf Desktop Allgemeine Java-Themen 2
Z Desktop anzeigen + Screenshot klappt nicht Allgemeine Java-Themen 3
R Base::Config-Fehler bei Desktop-Klasse Allgemeine Java-Themen 8
G Desktop.getDesktop() und Standardprogramme Allgemeine Java-Themen 4
KrokoDiehl Desktop.open() und warten? Allgemeine Java-Themen 3
hdi Listener für Desktop-Veränderungen Allgemeine Java-Themen 7
S (Doppel)Klick-Verhalten vom Desktop unter Java imitieren. Allgemeine Java-Themen 5
C Desktop.mail Problem. IO Exception: Failed to open. Allgemeine Java-Themen 3
T linux problem mit Desktop.getDesktop().open(..) Allgemeine Java-Themen 5
M bug? datei oeffnen nicht Desktop.open Allgemeine Java-Themen 3
V Probleme mit Desktop.open() ? Allgemeine Java-Themen 7
Daniel_L Fehler in Desktop.getDesktop().open()? Allgemeine Java-Themen 3
M Desktop mail attachments Allgemeine Java-Themen 3
D Anwendung startet im Remote Desktop nicht Allgemeine Java-Themen 14
M SMS aus Desktop-Anwendung verschicken Allgemeine Java-Themen 8
Daniel_L Desktop-Api: Problem mit open() und Umlauten Allgemeine Java-Themen 5
V Probleme mit Desktop.open() ? Allgemeine Java-Themen 4
W Anteil Desktop-PCs mit Java Allgemeine Java-Themen 12
R Jar-File vom Linux Desktop durch ancklicken starten? Allgemeine Java-Themen 5
M Klasse Desktop geht nicht mehr (EXCEPTION_ACCESS_VIOLATION) Allgemeine Java-Themen 9
H Mit Java Desktop abmessungen height/width abfragen Allgemeine Java-Themen 20
M eigenen Desktop erzeugen Allgemeine Java-Themen 3
ARadauer Java Desktop Framework Allgemeine Java-Themen 3
A State-of-the-Art Techniken für Desktop Programme ? Allgemeine Java-Themen 3
F Desktop Shortcut (*.lnk) erstellen? Allgemeine Java-Themen 11
M Desktop-Informationen Allgemeine Java-Themen 2
G Desktop-Icon erstellen? Allgemeine Java-Themen 5
G Programmpfad auslesen und Desktop-Icon erstellen? Allgemeine Java-Themen 3
G Java Fenster öffnen nach Iconklick(desktop) (helppls) Allgemeine Java-Themen 3
S Film vom Desktop erstellen Allgemeine Java-Themen 6
K Unterschied Core Java / Desktop Allgemeine Java-Themen 12
F Mehrere Versionen von Java auf einem W2K Desktop Allgemeine Java-Themen 3
B desktop auf monitor erweitern Allgemeine Java-Themen 22
D desktop nach ändern des hintergrunds aktualisieren Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben