Codeteilung

Status
Nicht offen für weitere Antworten.

michi2

Bekanntes Mitglied
Ich wollte meinen Quelltext auf mehere Dateien aufteilen, dabei gab es aber Probleme(hab so was noch nie gemacht)
Nun funktionirt das kompiliren aber ich krieg folgenden Interpretierfehler:

Exception in thread "main" java.lang.NoClassDefFoundError: Michis_Editor (wrong name: pk/Michis_Editor)

Die sources sind so:
(Ordner pk)
-Haupt datei Datei Michis_Editor.java:
Code:
 package pk;
 import java.awt.*;
 import java.util.*;
 import java.awt.event.*;
 import java.io.*;
 import javax.swing.*;
 import javax.swing.text.*;
 import java.awt.print.*;
 import java.text.*;
 import java.io.IOException.*;

import pk.*;


 public class Michis_Editor extends JFrame
  {
  //  Konstanten für die Größe der Textfläche
  //...
  // globale Variablen innerhalb der Klasse
  //...

  static Michis_Editor e1;
 
  public static void main(String[] args)
     {
     e1 = new Michis_Editor("Michi's Editor 3");
     // eine Instanz der Klasse anlegen und anzeigen

     // Position auf Bildschirm vorgeben
     e1.setLocation(100,100);
     e1.pack();
     e1.show();

     }
  
  Michis_Editor() {}
   // Im Konstruktur die Benutzerberfläche aufbauen
  Michis_Editor(String titel)
     {
     super(titel);

     //...

     }
  }

-Zweite Datei m.java:
Code:
  package pk;

 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
 import pk.*;

public class m
    {
    }

-weitere Dateien mit selben Schema

Kompiliren mach ich mit:
C:\Dokumente und Einstellungen\michi>javac "Michis_Editor.java" "m.java" "GrundfunkActionLauscher.java" ...
 

Mag1c

Top Contributor
Hi,

da haut was noch nicht hin.

michi2 hat gesagt.:
Kompiliren mach ich mit:
C:\Dokumente und Einstellungen\michi>javac "Michis_Editor.java" "m.java" "GrundfunkActionLauscher.java" ...

Wenn die Klassen tatsächlich im Unterverzeichnis "pk" liegen, dürfte das schon nicht gehen.

Gruß
Mag1c
 

michi2

Bekanntes Mitglied
Mag1c: Das 'pk' ist natürlich beim compiliren schon dabei...

MPW: Ich dachte das brauch ich nicht, weil ich alle Dateien gleichzeitig kompiliere?
Kanns aber mal versuchen...
 

Mag1c

Top Contributor
Jaja,

aber der Fehler deutet darauf hin, daß mit deiner Projektstruktur etwas nicht stimmt. Entweder, es hat sich irgendwo ein Schreibfehler eingeschlichen (KlassenName != DateiName.java; Package != Verzeichnis) oder die Package-Struktur stimmt nicht mit der Verzeichnisstruktur überein.

Gruß
Mag1c
 

MPW

Top Contributor
beim kompilieren brauchst du das auch nicht,
aber beim Ausführen, wie du ja selber siehst:

Classpath=".;restlicheClasspath" "." für das aktuelle Verzeichnis, dann brauchst du nicht inne FAQ gucken...
 

MPW

Top Contributor
Mag1c hat gesagt.:
Jaja,

aber der Fehler deutet darauf hin, daß mit deiner Projektstruktur etwas nicht stimmt. Entweder, es hat sich irgendwo ein Schreibfehler eingeschlichen (KlassenName != DateiName.java; Package != Verzeichnis) oder die Package-Struktur stimmt nicht mit der Verzeichnisstruktur überein.

Gruß
Mag1c

Bei falschen Dateinamen müsste aber der Compiler schimpfen....
 

SebiB90

Top Contributor
du führst den javac befehl in michi aus
in dem ordner michi/pk liegen aber die *.java dateien
du musst also den pfad anpassen
 

michi2

Bekanntes Mitglied
Ich starte javac in dem Odner pk!!!
Das mit der class path hab ich probiert, bringt nix!
Und in der Package-Strucktur konnte ich keine Fehler finden!
Was soll ich tun???
 

MPW

Top Contributor
Ähm, also dieser Fehler kann auch den Grund haben, dass du den örtlichen Classpath nicht hast:

Du hast zum Beisiel 5 jars im Classpath,
dir fehlt aber .; am Anfang, was auf den aktuellen Ordner hinweißt, das kann schonmal passieren, dass der dann seine eigene Datei nicht mehr findet, hast du das sicher korrigiert?
 

MPW

Top Contributor
hm, also wenn du willst kannst du auch mal alles posten(wenn's nicht zu viel ist, sonst steck's inne Zip; oder du das nicht willst), dann können wir mal schaun....
Es ist schwer zu sagne was das ist, da dieser Fehler multible Ursachen haben kann.
 

michi2

Bekanntes Mitglied
OK
Das ganze ist jetzt verfügbar unter: http://people.freenet.de/m.schoenitzer/pk.zip
Allerdings bin ich gerade mitten in der Code-zeteilung, das ist allso ein wenig un übersichtlich (die cods habe zusammen >4700 Zeilen; sind teil in Win teil in Mac format und schlecht eingerückt) ich hoffe du komst damit klar...
Danke für die Hilfe komm da im moment garnicht weiter...
 

MPW

Top Contributor
Also, dein Code kompiliert zwar irgendwie nicht..

Ich krieg' immer 100te von Fehler alles else without if und das kann ja nicht an packages liegen?

Ich weiß nicht, was du damit gemacht hast, geht mich auch nix an, aber das jar File konnte ich ohne Probleme erstellen:

http://www.myjavaserver.com/~matthiaspeterw/MichisEditor.jar

Noch was:

Mir ist was aufgefallen: m.java bzw. m.class

Classnamen schreibt man immer groß!
 

michi2

Bekanntes Mitglied
Sorry, so gehts bei mir jetzt auch was das mit den Compilerfehlern ist weiß ich nicht muss das zuhause noch mall in ruhe ausprobieren.
Geht im moment alles n' wenig drunter und drüber...

Danke und ein gutes neues Jahr
 

MPW

Top Contributor
michi2 hat gesagt.:
Sorry, so gehts bei mir jetzt auch was das mit den Compilerfehlern ist weiß ich nicht muss das zuhause noch mall in ruhe ausprobieren.
Geht im moment alles n' wenig drunter und drüber...

Danke und ein gutes neues Jahr

Ich glaube, ich hab' die nur falsch kompiliert, da ich nie mit packages arbeite, hab' ich die vergessen;-)
 
B

bygones

Gast
MPW hat gesagt.:
Ich glaube, ich hab' die nur falsch kompiliert, da ich nie mit packages arbeite, hab' ich die vergessen;-)
dann nehm das neue Jahr zum Anlass gleich mal nur noch mit packages zu arbeiten :lol:
 

Bleiglanz

Gesperrter Benutzer
Wenn da ein
Code:
package pk;
steht, dann MUSS irgendwo ein Ordner namens pk sein, das
Code:
C:\Dokumente und Einstellungen\michi>javac "Michis_Editor.java" "m.java" "GrundfunkActionLauscher.java" ...
kann niemals funktionieren

du musst javac in dem Ordner aufrufen, der den Ordner pk ENTHÄLT, also "weiter oben"
 

MPW

Top Contributor
Jaja, ich hab's in der Theorie schon verstanden, hab's nur in der Praxis übersehen^^
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben