PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : kleines JAVA Prob...



Blame!
07.09.04, 15:11
Hi, also wir arbeiten seit einem Jahr mit JAVA in der Schule, aber ich habs bis jetzt noch nicht geschafft dass alles richtig unter Linux funktioniert (..faulheit? *g*). auf jedenfall hab ich mir jetzt JAVA installiert und mal mit Limewire getestet (was ja auch in Java gecodet ist) und es funktionier. Aber wenn ich nun ein AWT prog von mir starten will kommt jedesmal:


bash-2.05b$ javac balkendiagramm.java
bash-2.05b$ java balkendiagramm
Exception in thread "main" java.lang.NoClassDefFoundError: balkendiagramm
bash-2.05b$

Weiß villeicht jemand Rat?

Danke.
Blame.

shb
07.09.04, 15:18
ich kann dir leider nicht helfen, das ist aber auch das falsche forum -> www.mrunix.de das ist für solche sachen die besser wahl

cu SHB

Reset2000
07.09.04, 15:23
Da musst du schon den Quelltext zeigen.
Unter Umständen ist auch der Classpath falsch gesetzt, oder Du verwendest nicht JDK, sondern nur die Standard Edition von Java.

Blame!
07.09.04, 15:38
@ shb: Danke, hab das Forum noch gar net gekannt.

@Reset2000: ich glaub ich hab wirklich den Classpath nicht gesetzt... muss ma gucken wie das geht, aber JDK benutze ich schon.

Blame!
07.09.04, 15:51
also hab bissle gegoogled und folgendes gefunden:

export CLASSPATH=/usr/lib/java/lib/classes.zip

funzt aber nicht, weil es dort keine classes.zip gibt,... hab auch schon gesucht, aber anscheinend hab ich überhaupt keine classes.zip... kann das sein??

Reset2000
07.09.04, 16:40
also hab bissle gegoogled und folgendes gefunden:

export CLASSPATH=/usr/lib/java/lib/classes.zip

funzt aber nicht, weil es dort keine classes.zip gibt,... hab auch schon gesucht, aber anscheinend hab ich überhaupt keine classes.zip... kann das sein??

Was du meinst ist sichelich die tools.jar und nicht die classes.zip, die class* hab ich auch nicht. Aber die muss man eigentlich auch nicht angeben.
Also bei mir reicht für das funktionieren von java, folgendes in der .bashrc aus:


export JAVA_HOME=/opt/jdk1.5.0/
export PATH=$PATH:/opt/jdk1.5.0/bin/

Pass dies mal deinem System an.

Blame!
07.09.04, 17:07
Habs angepasst:



export JAVA_HOME=/usr/local/j2sdk1.3.1
export PATH=$PATH:/usr/local/j2sdk1.3.1/bin


Jetzt bekomm ich nen anderen Error:



bash-2.05b$ java GridbagLayout1
Exception in thread "main" java.lang.NoSuchMethodError: main


Diesmal NoSuchMEthodError. ...

smirrrr
07.09.04, 17:09
Wie lautet denn der Klassenname, der die Methode Main Enthält in deiner Datei?
Groß Klein Schreibung nicht eingehalten?

Reset2000
07.09.04, 17:17
Nein, der Fehler bedeutet, daß du in dem Programm keine Main Methode hast, gib mal den Code aus.

Blame!
07.09.04, 17:21
public class GridbagLayout1 extends Applet
{

public void init()
{
GridBagLayout gbl = new GridBagLayout();
this.setLayout(gbl);


hab da keine Methode main... ich hab das prog vor längerer Zeit unter Windows mit dem JCreator gecodet... da hat das immer funktioniert ^^ Also is kein eichtiges Programm, is eher ein Beispiel fürs Gridlayout... hier mal der Quellcode:



import java.awt.*;
import java.applet.*;

public class GridbagLayout1 extends Applet
{

public void init()
{
GridBagLayout gbl = new GridBagLayout();
this.setLayout(gbl);

GridBagConstraints c = new GridBagConstraints();

c.fill = GridBagConstraints.BOTH; // wie Komponente Bereich füllen soll
c.weightx = 90; // Breite
c.weighty = 100; // Höhe
c.insets = new Insets(0,5,10,15); // Abstände definieren

Button but1 = new Button("Hallo");
Button but2 = new Button("Hallo2");
Button but3 = new Button("Hallo3");

Checkbox cb1 = new Checkbox("Checkbox 1");

TextField tf1 = new TextField("Textfeld 1");

c.gridx = 0; // x-Position
c.gridy = 0; // y-Position
c.gridwidth = 1; // Breite
c.gridheight = 2; // Höhe
gbl.setConstraints(but1, c); // zum GridBagConstraints hinzufügen
add(but1);

c.gridx = 1;
c.gridy = 0;
c.gridwidth = 3;
c.gridheight = 1;
gbl.setConstraints(but2, c);
add(but2);

c.gridx = 1;
c.gridy = 1;
c.gridwidth = 2;
c.gridheight = 1;
gbl.setConstraints(but3, c);
add(but3);

c.gridx = 3;
c.gridy = 1;
c.gridwidth = 1;
c.gridheight = 2;
gbl.setConstraints(tf1, c);
add(tf1);

c.gridx = 0;
c.gridy = 2;
c.gridwidth = 3;
c.gridheight = 1;
gbl.setConstraints(cb1, c);
add(cb1);
}

}


Ps.: Bei nichtgrafischen Programm mit "main" class funktioniert alles...

Reset2000
07.09.04, 18:14
Das ist ein Applet, das musst du dann auch mit dem appletviewer starten oder mit einem HTML Script. Nur Applikationen kannst Du mit dem Programm java starten.
Bis dann.

Blame!
07.09.04, 19:28
Nein, das is kein Webapplet, hab auch noch nie Applets erstellt...

Reset2000
07.09.04, 19:35
Ach, noch nie erstellt? Warum leitest Du dann von Applet ab?
Glaub mir, das ist ein Applet.



public class GridbagLayout1 extends Applet
{


starte das mal mit dem "appletviewer".

Blame!
08.09.04, 00:18
bash-2.05b$ appletviewer GridbagLayout1
I/O exception while reading: /home/cyrix/stuff/java/java/GridbagLayout1 (No such file or directory)
bash-2.05b$


...

shb
08.09.04, 01:01
import java.awt.*;
import java.applet.*;
public class GridbagLayout1 extends Applet
public void init()

also wenn das kein applet ist fress ich nen besen samt stiel



public class name{
public static void main (String args[]){
anweisungen
}
}

so würde für mich ein "normales" programm aussehen

cu SHB

schwarzbarde
08.09.04, 01:03
Du solltest auch das ".java" nicht vergessen.

Reset2000
08.09.04, 09:57
Beim appletviewer musst Du .class mit angeben. Das hat Sun leider alles sehr inhomogen gelöst.
Ich habe deine Quelle bei mir eben laufen lassen und das Applet durchläuft sich zwar ohne Fehlermeldung, aber leider wird es auch nicht angezeigt.
Das Dumme bei diesen Applets ist es, daß es mehrere Wege gibt ein Applet zu erstellen. Ich mache es Beispielsweise als erstes so, daß ich mir eine ContentPane vom Applet geben lasse und dort meine Elemente alle draufklatsche. Du machst es so das du ein GridBagLayout erstellst, damit dann das Applet fütterst und deine Elemente dem gridbag übergibst.
So auf die Schnelle würde ich sagen, daß dies ok ist, daß dem nicht so ist, sieht man ja. Doch habe ich momentan keine Zeit Dir mal zu zeigen wie ich das machen würde. Am besten, du postest das mal tatsächlich auf mrunix.de. Es ist nämlich keine Einstellungssache, Dein Java funktioniert.