Explorer oeffnen mittels java.awt.Desktop

Hi an Alle,

ich hab folgendes Problem, wobei dieses möglicherweise nicht mit dem Programmieraufwand zusammenhängt.

Nun zu Hause, am Heimrechner, wo ich Ubuntu Version _11.10_besitze habe ich auf Java einen Code geschrieben der den Internet Explorer (Firefox) auf meinen GUI Programm integriert.
Anbei der Zeilencode:
Die Entwicklungsumgebung ist Eclipse.

Java:
button6.addActionListener(new ActionListener(){
    	public void actionPerformed(ActionEvent ev){
    		java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
    		try {

    		java.net.URI uri = new java.net.URI("http://www.shop.t-mobile.at/");
    		desktop.browse( uri );
    		}
    		catch ( Exception e ) {

    		System.err.println( e.getMessage() );
    	}}
    });
Jedoch habe ich das Problem das der selbige Code in der Arbeit auf der Entwicklungsumgebung Spring Framework, in Bezug auf die Ausführung des Internet Explorer (ebenfalls Firefox) nicht funktioniert.
Stattdessen erhalte ich Compilerfehler, welches dazu veranlasst, das weitere Systemklassen geöffnet werden. Vor allem ist mir aber die Fehlermeldung „api cannot support this plattform“ aufgefallen und denke das ist der Schlüsselfaktor.

Nur ich weiß jetzt nicht wo der Unterschied zwischen dem Funktionieren von meinem Heimrechner und dem Funktionieren meines Arbeitsplatz ist, wenn das öffnen des Explorers zu Hause auf Anhieb funktioniert???

Kann es eben sein, dass ich bestimmt Pakete am Rechner des Arbeitsplatzes installieren muss???:rtfm:
Bin zuversichtlich das ich am Zeilencode der den Explorer aufruft, nicht gänzlich ändern muss sondern diesen im Programm beibehalten kann.
 
Welches OS / Java Version ist auf deinem Arbeitsplatz installiert?

du kannst auch testen, ob der 'Desktop' die Aktion unterstützt:

Java:
Desktop.getDesktop().isSupported(Desktop.Action.BROWSE);
Desktop.getDesktop().isSupported(Desktop.Action.EDIT);
Desktop.getDesktop().isSupported(Desktop.Action.MAIL);
Desktop.getDesktop().isSupported(Desktop.Action.OPEN);
Desktop.getDesktop().isSupported(Desktop.Action.PRINT);
 
Für linux gibts die VM von sun und eine openjdk. Und da gibts ein package "openjdk-6-headless", welches ne vm enthält, die kein Swing usw kann und sich nicht in die GUI des OS integriert.
Versuch mal [c]java --version[/c] und [c]echo $path[/code] und gib das ergebnis her 😉
 
hi Tobse,

danke ^ 2(zum Quadrat 🙂 ) , wie gesagt -> meine Arbeit beginnt morgen und komme erst dann zum Rechner. Ich hoffe das funzt, weil dem Chef möchte ich vom Hocker hauen, aus begeisterung natürlich, wenn er dies sieht.

Wie gesagt, mein Programm ist eine einfaches Jpanel Ansicht, und unter der Rubrik Filiale habe ich einen Button geaddet, falls man auf den klickt öffnet sich die homepage der jeweilige Filiale...

lg

Merlin_der_Zauberer.
 
danke ^ 2(zum Quadrat 🙂 ) , wie gesagt -> meine Arbeit beginnt morgen und komme erst dann zum Rechner. Ich hoffe das funzt, weil dem Chef möchte ich vom Hocker hauen, aus begeisterung natürlich, wenn er dies sieht.

Wie gesagt, mein Programm ist eine einfaches Jpanel Ansicht, und unter der Rubrik Filiale habe ich einen Button geaddet, falls man auf den klickt öffnet sich die homepage der jeweilige Filiale...
[OT]scheint ja ein leicht zu beeindruckender Chef zu seien ;-) [/OT]
 
das passiert wenn ich java 1.6

Laptop1:~$ java 6
Exception in thread "main" java.lang.NoClassDefFoundError: 6
Caused by: java.lang.ClassNotFoundException: 6
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: 6. Program will exit.

und das wenn ich $path eingebe:
 
Zuletzt bearbeitet:
Ich habe schon [c]java -version[/c] gemeint, nicht [c]java 1.6[/c].^^ Das sieht dann ungefähr so aus:
Code:
C:\>java -version
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b05)
Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode, sharing)

OK dein path sollte nich das problem sein. AUf die aufgabe von obigem kommts jetzt an.
 
Laptop1:~$ java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03)
Java HotSpot(TM) Server VM (build 20.8-b03, mixed mode)

ist das schon besser ?
 
Ja dann ist es nicht die Headless version. Kannst du dein programm über die komamndozeile starten? Also nich per doppelklick?
 
hi Tobse,

vielen Dank für deine Hilfe und ich hoffe wir kommen zu einer Endlösung. Ich habe gehört wenn man es im Terminal eingibt, so man aber auch jede einzelne Klasse eintippen nur mein programm mit Schwerpunt JPanel(Registerkartei) besteht aus mehrere Klassen. Also:

EchtZeitArbeit/src/Panel/FirstApplication.java
EchtZeitArbeit/src/Panel/bestellung.java
EchtZeitArbeit/src/Panel/filiale.java
EchtZeitArbeit/src/Panel/kunde.java
EchtZeitArbeit/src/Panel/lieferant.java
EchtZeitArbeit/src/Panel/MeinPanel.java
EchtZeitArbeit/src/Panel/postfach.java
EchtZeitArbeit/src/Panel/rechnung.java
EchtZeitArbeit/src/Panel/smartphone.java
EchtZeitArbeit/src/Panel/zubehoer.java

d.h. ich müsste demnach javac EchtZeitArbeit/src/Panel/FirstApplication.java eingeben. Zudem kommt das ich am laptop vom Arbeitsplatz erst Montagfrüh hinkomme. Um jetzt unser Thema endlich abzuschließen, frage ich dir schon im vorhinein:

Was soll ich tun, wenn es am Montag dort Befehlszeilenmäßig funkt und was wenn nicht ????
Was wäre der nächste Schritt um es den Browser endlich lauffähig zu gestalten ?

lg
MerlinZauberer
 
Ja, richtig. Du kannst jetzt dein Programm kompilieren mit
Code:
javac EchtZeitArbeit/src/Panel/FirstApplication.java
und dann auf dem Laptop von der Arbeit im Verzeichnis, wo dus kompiliert hast so ausführen (Ich gehe mal davon aus, die Klasse [c]FirstApplication[/c] ist im Package [c]Panel[/c]):
Code:
java Panel.FirstApplication

Wenn es funktioniert - gut. Wenn nicht, hilft weider nur die Fehlermeldung. Aber an der Headless wirds jetzt nichtmehr scheitern.
 
hi Tobse,

suuuper danke, dass du noch so schnell antwortest! Das verschafft einen Zeitsprung. ja die Klasse FirstApplication ist wie die anderen Klassen auch im package Panel gebündelt. Eigentlich ist MeinPanel die Main Class, aber der Chef wollte das ich eben die FirstApplication Class schreibe, die wiederum die Mainmethode "abnimmt".... nun gut, ich werde deine Anweisungen genaust befolgen und werde jetzt einmal am Heimrechner versuchen mittels dem Terminal die Anwendung zu starten.
 
hi Tobse,

das Problem ist gelöst, auch in der Arbeit funkt endlich der Browser.
Vielen Dank.

Die Ursache & die Lösung: ich hab auch in der Arbeit Java7 installiert und er startet automatisch den Explorer 😉
 

Zurück
Oben