Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi,
ich schaffe es leider nicht Packete unter JBuilder zu erstellen. Wenn ich es standardmäsig mit neues Projekt erstellen und dann neue Klasse erstellen mache, kommt immer eine Fehlermeldung. Die Codes sind von Tutorials und Bücher.
Beispiel:
Code:
/*
Programm PaketinhaltA.java
*/
package meinpaket;
public class PaketinhaltA
{
public void WerBistDu()
{
System.out.println("Hier ist die Methode 'WerBistDu' "
+"aus dem Paket 'meinpaket'");
System.out.println("Ich stehe in der Klasse 'PaketinhaltA'");
System.out.println("");
}
}
Kommt die Fehlermeldung:
C:\jbuilder5\jdk1.3\bin\javaw -classpath "C:\Dokumente und Einstellungen\benutzername\Desktop\unbenannt1\classes;C:\jbuilder5\jdk1.3\demo\jfc\Java2D\Java2Demo.jar;
C:\jbuilder5\jdk1.3\jre\lib\i18n.jar;C:\jbuilder5\jdk1.3\jre\lib\jaws.jar;C:\jbuilder5\jdk1.3\jre\lib\rt.jar;
C:\jbuilder5\jdk1.3\jre\lib\sunrsasign.jar;C:\jbuilder5\jdk1.3\lib\dt.jar;C:\jbuilder5\jdk1.3\lib\tools.jar" PaketinhaltA
java.lang.NoClassDefFoundError: PaketinhaltA
Der Class Wizard vom JBuilder sollte schon Pakete unterstützen können.
Wenn du auf Datei->neu gehst und dort Class anwählst, wird der entsprechende Wizard gestartet. Dort hast du dann auch die Möglichkeit ein package anzugeben. Dieses wird, falls noch nicht vorhanden, auch erstellt.
Klar, dass bei der Ausführung gemeckert wird. Du behauptest, dass du eine Klasse im pacakge meinpaket hast, wo aber nix zu finden ist.
Der Class Wizard vom JBuilder sollte schon Pakete unterstützen können.
Wenn du auf Datei->neu gehst und dort Class anwählst, wird der entsprechende Wizard gestartet. Dort hast du dann auch die Möglichkeit ein package anzugeben. Dieses wird, falls noch nicht vorhanden, auch erstellt.
Also ich habe 2 verschiedene Anleitungen ausprobiert, wie man Packete erstellt, beide gingen nicht. Und IMO gibt man mit "import java.xxx.*;" Packete an nicht mit "package packet".
Bei mir sehen im ClassWizard die oberen Zeilen folgendermaßen aus:
Class Information
ClassName [Eingabefeld]
Package [Eingabefeld]
Bas Class [Eingabefeld]
Bei Package kannst du den Packagenamen der zu erstellenden Klasse eingeben.
Reality hat gesagt.:
Also ich habe 2 verschiedene Anleitungen ausprobiert, wie man Packete erstellt, beide gingen nicht. Und IMO gibt man mit "import java.xxx.*;" Packete an nicht mit "package packet".
Import ist dazu da, deiner Klasse all die Klassen bekannt zu machen, die du nutzen möchtest. Ähnlich wie include in C.
Mit package definierst du, zu welchem package deine Klasse gehört.
C:\jbuilder5\jdk1.3\bin\javaw -classpath "C:\Dokumente und Einstellungen\benutzername\Desktop\PackageTest\classes;C:\jbuilder5\jdk1.3\demo\jfc\Java2D\Java2Demo.jar;
C:\jbuilder5\jdk1.3\jre\lib\i18n.jar;C:\jbuilder5\jdk1.3\jre\lib\jaws.jar;C:\jbuilder5\jdk1.3\jre\lib\rt.jar;
C:\jbuilder5\jdk1.3\jre\lib\sunrsasign.jar;C:\jbuilder5\jdk1.3\lib\dt.jar;C:\jbuilder5\jdk1.3\lib\tools.jar" packagetest.StartKlasse
java.lang.NoSuchMethodError: main
Hi,
ich habe es jetzt soweit geschafft die Packete zu erstellen, jedoch findet er dann bei dem Hauptprogramm nicht, wo ich die Packete mit import aufrufe, die Packete.
Was mache ich falsch?!
*lol* diese zeile steht in jedem buch/tutorial an erster stelle. jedes buch fängt mit einem hello world beispiel an, und zwar mit dieser zeile. nur in klassen, die nicht direkt vom interpreter aufgerufen werden, sondern instantiiert werden, müssen keine main methode haben
*lol* diese zeile steht in jedem buch/tutorial an erster stelle. jedes buch fängt mit einem hello world beispiel an, und zwar mit dieser zeile. nur in klassen, die nicht direkt vom interpreter aufgerufen werden, sondern instantiiert werden, müssen keine main methode haben
Kein Verständnis, was? Wenn in den Tuts der komplette Code ohne das main angezeigt wird, dann schreibe ich das auch so! Aber wie gesagt habe es nun geschafft die Packete zu schreiben, nur findet er sie dann nicht über import.
Zur Abwechslung vielleicht mal etwas Konstruktives, ja?
*lol* diese zeile steht in jedem buch/tutorial an erster stelle. jedes buch fängt mit einem hello world beispiel an, und zwar mit dieser zeile. nur in klassen, die nicht direkt vom interpreter aufgerufen werden, sondern instantiiert werden, müssen keine main methode haben
package meinpacket;
public class PacketinhaltA {
public PacketinhaltA() {
}
public void WerBistDu()
{
System.out.println("Hier ist die Methode 'WerBistDu' "
+"aus dem Paket 'meinpaket'");
System.out.println("Ich stehe in der Klasse 'PaketinhaltA'");
System.out.println("");
}
public static void main(String[] args) {
}
}
Der Hauptcode sieht so aus:
Code:
/*
Programm Pakettest.java
*/
/*
Hier stehen unsere Importanweisungen, damit der Compiler und der
Interpreter unsere Klassen auch findet. Der '*' bedeutet, dass wir
alle im Verzeichnis vorhandenen Klassen für unser Programm verfügbar
machen wollen.
*/
import meinpaket.*;
import meinpaket.meinunterpaket.*;
public class Pakettest
{
/*
Die obligatorische Startmethode, die in diesem kleinen Beispiel
auch die einzige Methode ist.
*/
public static void main(String args[])
{
/*
Nachdem wir drei Klassen geschrieben haben, deklarieren wir
auch drei Objekte.
*/
PaketinhaltA oPaketA;
PaketinhaltB oPaketB;
UnterPaketinhaltC oPaketC;
/*
Jetzt bilden wir die entsprechenden Instanzen der Objekte
*/
oPaketA=new PaketinhaltA();
oPaketB=new PaketinhaltB();
oPaketC=new UnterPaketinhaltC();
/*
Und jetzt rufen wir für alle Objekte die Methode 'WerBistDu' auf
*/
oPaketA.WerBistDu();
oPaketB.WerBistDu();
oPaketC.WerBistDu();
}
}
Mit dem Thema Packete beschäftige ich mich ja gerade. Die Codes sind nachvollziehbar, nur schaffe ich es eben nicht das Programm lauffähig zu machen. :cry:
Bei mir sind sie, da wo sie JBuilder ablegte in dem Verzeichnis classes/meinpacket.
Ich werd´s morgen mal ausprobieren, in dem ich die Dateien kopiere (muss noch lernen), danke!
Ein riesen Dankeschön an Pulvertoastman, der erkannte, dass ich jediglich ein Rechtschreibfehler bei der Bennenung der Packete hatte und sie so unterschiedliche Namen hatten.