Websl
Anmeldungsdatum: 4. Mai 2008
Beiträge: Zähle...
Wohnort: Mannheim
|
Hi, habe gestern Eclipse 3.5.2 (Galileo) für Linux runtergeladen, entpackt und mit der Hilfe des Wikis durch ein Script startbar auch über das Terminal gemacht.
Vorher hatte ich Eclipse 3.2 aus den Synaptic Paketquellen. Nun habe ich unter beiden Version ein ähnliches Problem. Unter 3.2 wurden mir meine programmierten GUIs (alles von Hand mit den Bibliotheken von swing und awt) nicht angezeigt.
Ich habe das Programm kompiliert und ausgeführt (innerhalb Eclipse) und es ist nur ein leeres Fenster auf gegangen.
Vorsichtshalber habe ich das gleiche Programm auf einem Windowssystem laufen lassen, da ging es.
Ich habe ebenfalls ein etwa 2 Monate altes Programm von mir, mit GUI, in Eclipse kopiert und ausgeführt, auch hier ein leeres Fenster. Unter 3.5.2 (Galileo) komm ich wenigstens schon einen Schritt weiter. Ich bekomme die GUIs angezeigt, aber es sieht aus, als hätte sich der GUI Thread sofort abgeschossen. Ich kann nichts anwählen, keine Buttons drücken und in kein Textfeld klicken bzw. schreiben. Ich habe über Synaptic Java 6 installiert, also kann es daran schonmal nicht liegen.
Auch hat Eclipse einen eigenen Compiler und Interpreter, was also funktionieren müsste... Ich bin ratlos und hoffe, das mir hier jemand helfen kann. P.S. Blutiger Linuxanfänger :/ //edit: Achja, ich benutze Ubuntu 9.04 NBR. //edit2: Mir wird gerade gesagt, das awt nicht Plattformunabhängig ist. Wie sollte das denn sonst funktionieren? Bzw gibt es einen Ersatz für Linuxsysteme die ActionListener zur Verfügung stellen? Und als kompilierte .jar File, funktioniert alles ohne Probleme.... Gruß
Web
|
BuZZ-dEE
Anmeldungsdatum: 28. August 2007
Beiträge: 468
Wohnort: Oldenburg
|
Wie kommst du darauf, dass awt nicht plattformunabhängig ist bzw. was willst du damit sagen? Wenn es Java für das entsprechende System gibt, dann kannst du das auch auf dem entsprechenden System nutzen. Welches Java benutzt du denn? Das OpenJDK?
|
Websl
(Themenstarter)
Anmeldungsdatum: 4. Mai 2008
Beiträge: 15
Wohnort: Mannheim
|
Hm, ich habe wohl das OpenJDK weil es vorinstalliert war, hab aber nachträglich noch Java 6 von SUN installiert. Von wegen awt:
Ein Freunde meinte, es wäre nicht Plattformunabhängig, was eigentlich gar nicht sein kann, ja...
Aber nach etwas googlen hat einfach jeder was anderes gesagt... greez Web
|
fuchsfuchsfuchs
Maskottchen
Anmeldungsdatum: 23. Juni 2008
Beiträge: 5641
Wohnort: Confoederatio Helvetica
|
Sourcecode zeigen, bitte. Das klingt fuer mich nicht nach einem Eclipseproblem. Fuchs
|
Websl
(Themenstarter)
Anmeldungsdatum: 4. Mai 2008
Beiträge: 15
Wohnort: Mannheim
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 | packge test.projekte;
import javax.swing.*;
import java.awt.*;
@SuppressWarmomgs("serial");
public class GUI extends JFrame {
JButton button1 = new JButton("testbutton");
GUI() {
super("Testfenster");
this.setPreferredSize(new Dimension(150, 100));
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel panel1 = new JPanel);
panel1.add(button1);
setLayout(new BorderLayout());
add(panel1, BorderLayout.NORTH);
pack();
setLocationRelativeTo(null);
}
public static void main (String[] args) {
new GUI().setVisible(true);
}
}
|
Das ist jetzt der Code zu dem "1 Button GUI", das ich zum testen geschrieben hab. Falls Syntaxfehler drin sind, kommt das vom abtippen, war jetzt zu faul das irgendwie hin und her zu kopieren.
Also, es kompiliert, ich bekomme ein 150x100px Fenster mit einem Button auf dem "testbutton" steht, aber ich kann ihn nicht drücken.
Sprich die Animation dahinter erscheint nicht. Bei meinem anderen Programm das gleiche, nur da darf ich nichtmal in mein Textfeld schreiben. Gruß
Web
|
fuchsfuchsfuchs
Maskottchen
Anmeldungsdatum: 23. Juni 2008
Beiträge: 5641
Wohnort: Confoederatio Helvetica
|
Hat ein paar Syntaxfehler, aber wenn man das korrigiert und kompiliert (sowohl direkt mit javac wie auch in Eclipse) kann ich den Fehler hier weder auf Ubuntu noch Gentoo reproduzieren. Erscheint das Fenster im Standard Java Stil, oder wird der GTK Stil imitiert? Fuchs
|
Websl
(Themenstarter)
Anmeldungsdatum: 4. Mai 2008
Beiträge: 15
Wohnort: Mannheim
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 | package test.projekte;
import javax.swing.*;
import java.awt.*;
@SuppressWarnings("serial")
public class GUI extends JFrame {
JButton button1 = new JButton("testbutton");
GUI() {
super("Testfenster");
this.setPreferredSize(new Dimension(150, 100));
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel panel1 = new JPanel();
panel1.add(button1);
setLayout(new BorderLayout());
add(panel1, BorderLayout.NORTH);
pack();
setLocationRelativeTo(null);
}
public static void main (String[] args) {
new GUI().setVisible(true);
}
}
|
So, dann hier den Code direkt aus Eclipse kopiert.
Mir wird dort kein Fehler angezeigt.
Wenn ich es ausführe, dann wird mir der Button im Swingstyle angezeigt, das Fenster hat Ubuntu-Theme-Style, aber das ist ja normal. Also Java Stil! Wenn ich das ganze übers Terminal versuche, dann muss ich aus der .java File ja erst eine .class File machen, also javac GUI.java
Dann habe ich eine .class File.
Führe ich diese dann mit java GUI.class aus?
Falls ja, kommt nur folgende Fehlermeldung: ******:/.../.../workspace/Hochschule/src/test/projekte# java GUI.class
Exception in thread "main" java.lang.NoClassDefFoundError: GUI/class
Caused by: java.lang.ClassNotFoundException: GUI.class
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
Could not find the main class: GUI.class. Program will exit. Ja, ich habe es als root gemacht. Gruß
Web
|
fuchsfuchsfuchs
Maskottchen
Anmeldungsdatum: 23. Juni 2008
Beiträge: 5641
Wohnort: Confoederatio Helvetica
|
Websl schrieb:
So, dann hier den Code direkt aus Eclipse kopiert.
Mir wird dort kein Fehler angezeigt.
Wenn ich es ausführe, dann wird mir der Button im Swingstyle angezeigt, das Fenster hat Ubuntu-Theme-Style, aber das ist ja normal. Also Java Stil!
Gut.
Wenn ich das ganze übers Terminal versuche, dann muss ich aus der .java File ja erst eine .class File machen, also javac GUI.java
Dann habe ich eine .class File.
Führe ich diese dann mit java GUI.class aus?
Nein. java GUI
Ja, ich habe es als root gemacht.
Sehr schlechte Idee. Bitte nicht wiederholen, mit keinem Programm. Ich haette noch gerne javac -version und java -version von Dir.
Gruß
Web
retour Fuchs
|
Websl
(Themenstarter)
Anmeldungsdatum: 4. Mai 2008
Beiträge: 15
Wohnort: Mannheim
|
fuchsfuchsfuchs schrieb: Ich haette noch gerne javac -version und java -version von Dir.
javac 1.6.0_0 java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.4.1) (6b14-1.4.1-0ubuntu11)
OpenJDK Client VM (build 14.0-b08, mixed mode, sharing) Sieht so aus, als wäre das OpenJDK dran schuld, mit der SUN Version funktionierts bestimmt :S Aber danke schonmal für deine Mühen ☺ Gruß
Web
|
fuchsfuchsfuchs
Maskottchen
Anmeldungsdatum: 23. Juni 2008
Beiträge: 5641
Wohnort: Confoederatio Helvetica
|
Websl schrieb: fuchsfuchsfuchs schrieb: Ich haette noch gerne javac -version und java -version von Dir.
javac 1.6.0_0 java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.4.1) (6b14-1.4.1-0ubuntu11)
OpenJDK Client VM (build 14.0-b08, mixed mode, sharing) Sieht so aus, als wäre das OpenJDK dran schuld, mit der SUN Version funktionierts bestimmt :S
Dann nimm die, http://wiki.ubuntuusers.de/Java schau bei update-alternatives nach.
Aber danke schonmal für deine Mühen ☺
Keine Ursache.
Gruß
Web
retour,
Fuchs
|
Websl
(Themenstarter)
Anmeldungsdatum: 4. Mai 2008
Beiträge: 15
Wohnort: Mannheim
|
Jetzt kommt wieder der Fakt, das ich neu in der Linuxwelt bin. 1) OpenJDK entfernen 2) SUN Java Kram entfernen 3) SUN Java Kram neu installieren So wäre ich zumindest jetzt vorgegangen. Aber ich weiß eben nicht, ob das OpenJDK für andere Dinge gebraucht wird, weil es eben vorinstalliert ist. Und der Punkt zu update-alternatives im Wiki ist nur für Browser Plugins, wenn ich das richtig gesehen habe? Gruß
Web
|
fuchsfuchsfuchs
Maskottchen
Anmeldungsdatum: 23. Juni 2008
Beiträge: 5641
Wohnort: Confoederatio Helvetica
|
Websl schrieb: Jetzt kommt wieder der Fakt, das ich neu in der Linuxwelt bin. 1) OpenJDK entfernen
Lieber nicht.
So wäre ich zumindest jetzt vorgegangen. Aber ich weiß eben nicht, ob das OpenJDK für andere Dinge gebraucht wird, weil es eben vorinstalliert ist.
Noe.
Und der Punkt zu update-alternatives im Wiki ist nur für Browser Plugins, wenn ich das richtig gesehen habe?
Noe. update-alternatives --list java
da nach dem von Sun schauen, und mit --set setzen. Oder, einfacher: sudo update-alternatives --config java und sudo update-alternatives --config javac
Zu Deinem Kommentar mit der Linuxwelt: update-alternatives ist sehr Ubuntu/Debianspezifisch und hat mit Linux an sich nichts zu tun. Das nur als Randinformation.
Gruß
Web
retour, Fuchs
|
Websl
(Themenstarter)
Anmeldungsdatum: 4. Mai 2008
Beiträge: 15
Wohnort: Mannheim
|
Guten Morgen, ich habe besagte Befehle ausprobiert. → sudo update-alternatives --config java Hier war eine Version von Sun zu finden (/usr/lib/jvm/java-6-sun/jre/bin/java).
Diese habe ich auch glleich ausgewählt. Vom Java Compiler, also sudo update-alternatives --config javac ist jedoch nichts von Sun zu finden: ************:~$ sudo update-alternatives --config javac
Es gibt 4 Alternativen, die »javac« bereitstellen.
Auswahl Alternative
-----------------------------------------------
1 /usr/bin/ecj
2 /usr/bin/gcj-wrapper-4.3
3 /usr/lib/jvm/java-gcj/bin/javac
*+ 4 /usr/lib/jvm/java-6-openjdk/bin/javac
Laut synaptic ist aber auch das Paket "sun-java6-jdk" nicht installiert.
Wäre wohl sinnvoll zu installieren, oder? Gruß
Web
|
fuchsfuchsfuchs
Maskottchen
Anmeldungsdatum: 23. Juni 2008
Beiträge: 5641
Wohnort: Confoederatio Helvetica
|
Websl schrieb: Guten Morgen,
10:30 ist ja noch mitten in der Nacht ☹ Morgen ☺
Laut synaptic ist aber auch das Paket "sun-java6-jdk" nicht installiert.
Wäre wohl sinnvoll zu installieren, oder?
Ja. Und dann in Eclipse als Default setzen.
Gruß
Web
retour
Fuchs
|
Websl
(Themenstarter)
Anmeldungsdatum: 4. Mai 2008
Beiträge: 15
Wohnort: Mannheim
|
Für Informatiker ist 10:30 Uhr noch mitten in der Nacht, ja, aber für Studenten ist es schon fast Mittag ^^' So, hab das Paket installiert und mit "sudo update-alternatives --config java" ausgewählt. Eclipse will immer noch nicht so wie ich will, aber ich weiß auch nicht, wo ich es als Standard einstelle. Habe nun ein neues Projekt erstellt und dort die JRE auf "java-1.5.0-gcj-4.3-1.5.0.0" gestellt. Hat leider auch nichts geholfen. Ansonsten wüsste ich nicht, wo ich das noch umstellen kann. Unter Run → Run Configurations ist auch nichts weiter zu finden. Unter Window → Preferences habe ich das Compiler compliance level mal auf 1.6 gestellt (vorher 1.5), hat aber auch nichts geholfen. Unter "Installed JREs" ist auch nur das oben genannte (java-1.5.0-gcj-4.3-1.5.0.0) zu finden. So langsam bin ich doch am Ende mit meinem Latein :/ Gruß
Web
|