# Run und Debug eines Java-Projektes



## Java-Laie (9. Dez 2011)

Hallo, liebe Java-Experten!

Nachdem ich zweimal mit kommerzieller Software (Turbo JBuilder 2007 von Codegear und JBuilder 2008 von Embarcadero) schlechte Erfahrung bei der jeweiligen Installation sammelte, gelang es mir, das SDK erfolgreich zu installierren und die Eclipse IDE "Indigo" (endlich mal etwas ohne Installation) erfolgreich zu starten.

Ich habe ein relativ simples Java-Projekt vorliegen (hoffentlich ist es überhaupt ein vollständiges), das ich gern zum Laufen brächte und eigentlich bevorzugt debuggen möchte. Auf Wunsch kann ich es auch gern hier veröffentlichen, sofern das möglich möglich ist.

Meine Erfahrung sagt mir, in der Verzeichnisstruktur in das Verzeichnis "src" hinabzutauchen, dort finden sich die Java-Dateien (wenigstens mit dieser Endung). Die Abhängigkeiten sind rasch klar, die "Zentraldatei" müßte die "main.java" sein. Rufe ich diese über Eclipse auf (Datei->öffnen), so liegt ihr Quelltext vor.

Drücke ich auf den Run-Button, so wird man nach der "Ant Build" gefragt, einmal "Launches an Ant build with default" und das zweite "Launches an Ant Build and allows it". Doch egal, was ich wähle, danach tut sich nichts erkennbares mehr. Keine Ahnung, ob das an dem Projekt liegt; könnte sein, denn Interaktion ist, so kann ich den Quelltexten entnehmen, zumindest nicht die Stärke des Projektes, es ist eher eine Machbarkeitsstudie.

Mir würde es auch völlig reichen, im Debugmodus das Projekt "durchzusteppen" und mir die wichtigen Werte anzeigen zu lassen. Habe ich diese Chance? Ich versuche auch "Debug", mit und ohne "Toggle Breakpoint", doch nirgends ist echtes Laufen des Programmes wahrnehmbar, geschweige denn, eine Möglichkeit, sich die Werte anzeigen zu lassen.

Vielen Dank im voraus und viele Grüße

Java-Laie


----------



## Fab1 (9. Dez 2011)

Also, wenn du alle Klassen im src Verzeichnis von deinem Eclipse Projekt hast, und trotzdem nichts passiert, wenn den Code ausführst, dann liegt es am Code.


----------



## Java-Laie (10. Dez 2011)

Fab1 hat gesagt.:


> Also, wenn du alle Klassen im src Verzeichnis von deinem Eclipse Projekt hast, und trotzdem nichts passiert, wenn den Code ausführst, dann liegt es am Code.



Erst einmal danke! So schnell gebe ich nicht auf, zumal es ein vollständiges Projekt sein soll.

Im src-Verzeichnis liegen nur die java-Dateien (mit dieser Endung). Es gibt aber noch - neben dem src-Verzeichnis auf gleicher Ebene - andere Verzeichnisse, darunter eines, das, wenn dort ein wenig hineintaucht, auch class-Dateien offenbart, und zwar mit denselben Dateinamen (nur eben mit der Endung "class"). Müssen die mit in das src-Verzeichnis gepackt werden? So verstehe ich es jedenfalls.

Ich werde auch mal in den hier veröffentlichten Projekten stöbern...

Vielen Dank und viele Grüße

Java-Laie


----------



## Fab1 (10. Dez 2011)

Hi,

zu den .class und .java Dateien kannst du dir mal folgendes anschauen.
Da wird das ganz gut erklärt.

Java-Programme mssen vor der Ausfhrung kompiliert werden.

Aber an sich musst du die .class Dateien nicht rein ziehen, da diese erstellt werden, wenn das Programm kompiliert wird.


----------



## tuttle64 (10. Dez 2011)

Java-Laie hat gesagt.:


> Mir würde es auch völlig reichen, im Debugmodus das Projekt "durchzusteppen" und mir die wichtigen Werte anzeigen zu lassen. Habe ich diese Chance? Ich versuche auch "Debug", mit und ohne "Toggle Breakpoint", doch nirgends ist echtes Laufen des Programmes wahrnehmbar, geschweige denn, eine Möglichkeit, sich die Werte anzeigen zu lassen.



Versuche in Eclipse folgendes: 

1. Window -> Open Perspectives -> Debugger
2. Setze in Deiner main() Methode einen Brekapoint indem Du am Rande doppelklickst, sofern dieser Breakpoint im Breakpoint-Fenster erscheint, gehe zu 3.
3. Run -> Debug

Dann müsste der Debugger bei der ersten Programmzeile nach main() stehenbleiben. Sofern das klappt, können wir mit Step Into und Step Over fortschreiten. Siehe auch den Link in meiner Signatur. Dort findest Du ein hervorragendes Tutorial auf Englisch zum Thema "Eclipse and Java: Using the Debugger"


----------



## Java-Laie (10. Dez 2011)

Fab1 hat gesagt.:


> Hi,
> 
> zu den .class und .java Dateien kannst du dir mal folgendes anschauen.
> Da wird das ganz gut erklärt.
> ...



Danke, das funktioniert leider nicht, ob ohne oder mit -classpath. Es kommt nur, daß javac nicht gefunden werden konnte. Ich installierte das SDK und Indigo. Reicht das immer noch nicht? Es scheint ganz danach so.

Vielen Dank und viele Grüße

Java-Laie

Edit: javac kennt mein System nicht, dafür aber java. Ob das ein Tippfehler auf jener Seite ist?

Edit2: Der nächste Wermutstropfen: Nach Eingabe der Befehle bzw. Befehlszeilen "java main" und "java main.class" kommt jedesmal die Fehlermeldung "Fehler! Die Hauptklasse main.class konnte nicht gefunden oder geladen werden." Ich bin mit Sicherheit in dem Verzeichnis, in dem sie sich befindet. Ich habe eine gleichnamige Datei von einem anderen Unterverzeichnis extra in das Quelltextverzeichnis hinüberkopiert. Schade.

Edit 3: Mit -classpath scheint es zu funktionieren, keine Fehlermeldung mehr, dafür ein Fülle an Optionen....


----------



## Java-Laie (10. Dez 2011)

Auch Dir, tuttle64, ein großes Dankeschön!



tuttle64 hat gesagt.:


> Versuche in Eclipse folgendes:
> 
> 1. Window -> Open Perspectives -> Debugger



Bis auf die Tatsache, daß das Quelltextfenster danch verschwunden war, ich es aber nach dem Neuladen wieder vorfand - ein Zustand, der zum Glück auch nach dem Starten automatisch wieder eingestellt war - klappte das. Also, Editor- und Debuggerfenster sind vorhanden.



tuttle64 hat gesagt.:


> 2. Setze in Deiner main() Methode einen Brekapoint indem Du am Rande doppelklickst, sofern dieser Breakpoint im Breakpoint-Fenster erscheint, gehe zu 3.



Über eine farbliche Hervorhebung des / der Breakpoints hätte ich mich mehr gefreut, aber auch das klappt.



tuttle64 hat gesagt.:


> 3. Run -> Debug
> 
> Dann müsste der Debugger bei der ersten Programmzeile nach main() stehenbleiben. Sofern das klappt, können wir mit Step Into und Step Over fortschreiten.



Und das klappt leider nicht, das wäre ja schon fast das Ziel meiner Wünsche. Das Variablenfenster, das eigentliche Ziel meiner Träume, fand ich schon, es ist der Reiter / Tab daneben.



tuttle64 hat gesagt.:


> Siehe auch den Link in meiner Signatur. Dort findest Du ein hervorragendes Tutorial auf Englisch zum Thema "Eclipse and Java: Using the Debugger"



Danke, leider ist das für mich immer mit einem mehr oder weniger (leider nicht genau feststellbaren) Informationsverlust verbunden, denn Angelsächsisch wurde nicht zu meiner zweiten Muttersprache.

Vielen Dank und viele Grüße

Java-Laie


----------



## Fab1 (10. Dez 2011)

Kannst du mal nochmal zusammenfassen was du alles gemacht hast?

Kannst du den Code, den du ausführen möchtest auch mal posten oder hochladen, somit könnte man das zumindest schon mal ausschließen.

und das mit javac ist kein Fehler, allerdings musst du, wenn du eclipse installiert hast das nicht mit der Console ausführen. Dies würde dir eclipse abnehmen.


----------



## gman (10. Dez 2011)

Hi,

mal eine andere Frage zwischendurch:

Die "main.java" enthält aber auch die Methode: [c]public static void main(String[] args)[/c] ?
Wenn die nämlich nicht vorhanden ist, schlägt Eclipse auch nicht "Run as -> Java Application" vor.
Und anscheinend fehlt dies ja bei dir.


----------



## Java-Laie (10. Dez 2011)

Vielen Dank für Eure Geduld mit mir!



Fab1 hat gesagt.:


> Kannst du mal nochmal zusammenfassen was du alles gemacht hast?



Natürlich. Zum einen gelang es mir, in Eclipse ein Debugfenster (mit Breakpoints) und gleichzeitig das Editorfenster zu öffnen und Breakpoints zu- und abzuschalten. Zum anderen war ich auf der Kommandozeilenebene aktiv und schaffte es, daß der Befehl java -classname main (oder main.java) nicht zu einem Fehler führt, sondern eine Fülle an Optionen ausspukt).



Fab1 hat gesagt.:


> Kannst du den Code, den du ausführen möchtest auch mal posten oder hochladen, somit könnte man das zumindest schon mal ausschließen.



Schon geschehen. Der Inhalt ist der originale.

Vielen Dank und viele Grüße

Java-Laie


----------



## Fab1 (10. Dez 2011)

Java-Laie hat gesagt.:


> Vielen Dank für Eure Geduld mit mir!
> 
> 
> 
> Natürlich. Zum einen gelang es mir, in Eclipse ein Debugfenster (mit Breakpoints) und gleichzeitig das Editorfenster zu öffnen und Breakpoints zu- und abzuschalten. Zum anderen war ich auf der Kommandozeilenebene aktiv und schaffte es, daß der Befehl java -classname main (oder main.java) nicht zu einem Fehler führt, sondern eine Fülle an Optionen ausspukt).



Gut, also ich hab mir das Programm angeschaut und es lässt sich, sofern man die erste Zeile mit dem package entfernt Problemlos starten bei mir kommen auch eine Fülle an Daten. Scheint bei dir ja auch funktioniert zu haben wie du geschrieben hast.


> daß der Befehl java -classname main (oder main.java) nicht zu einem Fehler führt, sondern eine Fülle an Optionen ausspuckt).



Dann erst mal nur noch eine Frage, was gibt es sonst noch?


----------



## Ralph-Uwe (10. Dez 2011)

Hallo,

es reicht nicht aus nur die main.java zu öffnen.

Klicke in Eclipse auf: new/new/Project 
wähle:  Java Projekt 
und klicke auf: next

Hier kannst Du dem Projekt einen Namen geben
nimm den Haken unter use default location raus und klicke auf Browse
wähle das Verzeichnis aus, in dem alle Dateien und Unterverzeichnisse liegen 
in diesem Fall "InPlaceShuffle" und klicke finish.

Jetzt wird im PackageExplorer das Project angelegt.
Diue Verzeichnisstruktur nur soweit öffen, bis Du zur Datei Main.java gelangt.
Mit einem rechts Klick das Menü öffnen und mit: run as ==> Java Aplication das Programm starten.

Gruß


----------



## Java-Laie (10. Dez 2011)

gman hat gesagt.:


> Hi,
> 
> mal eine andere Frage zwischendurch:
> 
> ...



Ja, es findet sich:
	
	
	
	





```
public static void main(String[] args) throws InterruptedException
```


----------



## Java-Laie (10. Dez 2011)

Danke!



Fab1 hat gesagt.:


> Gut, also ich hab mir das Programm angeschaut und es lässt sich, sofern man die erste Zeile mit dem package entfernt Problemlos starten



Also ist diese Zeile zuviel?



Fab1 hat gesagt.:


> bei mir kommen auch eine Fülle an Daten.
> 
> Scheint bei dir ja auch funktioniert zu haben wie du geschrieben hast.
> 
> Dann erst mal nur noch eine Frage, was gibt es sonst noch?



Was meinst Du? Ich schrieb, daß eine Fülle Optionen kommt. Die können kaum aus den Java-Quelltexten selbst stammen. Das sind ziemlich sicher Meldungen des java(-Compilers?), also des java-Befehles im Eingabeaufforderungsfenster. Möchtest Du die wissen? Dann würde ich sie besorgen (anderer Computer).


----------



## Java-Laie (10. Dez 2011)

Fab1 hat gesagt.:


> Dann erst mal nur noch eine Frage, was gibt es sonst noch?



Also, die *.class-Dateien befinden sich nunmehr mit im Unterverzeichnis, in dem auch die *.java-Dateien liegen.

rufe ich "java main" auf, kommt:

"Exception in thread "main" java.lang.NoClassDefFoundError: min <wrong name: inplaceshuffle/Main>", gefolgt von etlichen Zeilen wie "at java.langClassLoader.defineClass <Native Method>" und ähnlich.

Rufe ich hingegen "java -classpath main" auf, kommt:

"Verwendung: java[-options] class [args...]
-d32 Verwendet ein 32-Bit-Datenmodell, sofern verfügbar"

und noch viele weitere Zeilen. Das sind eindeutig Kommandozeilenparameter.

Rufe ich "java -classpath -d32 main" auf (sollte eigentlich zu einem 32-Bit-Compilat führen), kommt: "Fehler: Hauptklasse main konnte nicht gefunden oder geladen werden."


----------



## Java-Laie (10. Dez 2011)

Ralph-Uwe hat gesagt.:


> Hallo,
> 
> es reicht nicht aus nur die main.java zu öffnen.
> 
> ...



Danke, das hilft schonmal viel weiter. Doch zum Ziele führt auch das nicht, es scheitert am Compilieren. Ist die Zeile mit dem Package auskommentiert (die wurde ja weiter oben als störend erkannt), kommt beim/ nach dem Compilieren die Fehlermeldung:

"Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	The declared package "inplaceshuffle" does not match the expected package ""

	at Chronometer.<init>(Chronometer.java:6)
	at Main.main(Main.java:23)"

Nehme ich die Auskommentierung zurück, erscheint "nur" noch:

"Exception in thread "main" java.lang.Error: Unresolved compilation problem: 

	at Main.main(Main.java:21)".

Ein Klick auf die Meldung springt zur Zeile 21 mit der Zeile:

"public static void main(String[] args) throws InterruptedException {".

Mir ist unklar, was es an dieser Zeile zu monieren gibt, zumal hier mir bestätigt wurde, daß es sich um ein vollständiges, lauffähiges Projekt handelt.

Vielen Dank erneut und viele Grüße

Java-Laie


----------



## Java-Laie (10. Dez 2011)

Irgendwie tanzen wir hier auf zwei Hochzeiten, scheint es mir: Zum einen das Compilieren auf der Kommandozeilenebene, zum anderen in der IDE. Ich vermute, daß das eine vom anderen unabhängig ist. Mir würde die IDE reichen, und die ist wahrscheinlich auch die einzig sinnvolle, wenn man es "durchsteppen" möchte. Doch Mißerfolge machen bescheiden. Ich hätte ja schon einen (kleinen) Glückshormonausstoß, wenn ich auf der Kommandozeilenebene einen klitzekleinen Erfolg hätte.

Postscriptum: Daß ich schon seit 23 Jahren programmiere, wird mir nach diesen Anfängermißerfolgen wohl kaum jemand glauben....


----------



## Fab1 (10. Dez 2011)

Also, du hast in deinem srv Verzeichnis 5 Dateien und in jeder dieser Dateien steht in der ersten Zeile (bzw fast ganz oben) das mit package inplaceshuffle; oder so ähnlich, wenn du diese Zeile in der Datei löscht bzw. auskommentierst, dann funktioniert es. In dem du das Projekt in Eclipse ausführst (das grüne Zeichen) oder F11 sollte auch funktionieren glaub ich. Zumindest habe ich bei mir nichts anderes geändert.


----------



## gman (10. Dez 2011)

Hi,

ich habe mir auch mal (kurz) das Programm angeschaut. Ich habe einfach in Eclipse
ein neues Java-Projekt angelegt und dann im Datei-Explorer den Unterordner von
"src" kopiert und in Eclipse in den Ordner "src" des Projektes eingefügt:

Rechtsklick auf den "src"-Ordner und dann "Paste".

Dann habe ich die Main.java geöffnet und mit "Run -> Run As -> Java Application" gestartet.

So sollte es funktionieren, obwohl ja anscheinend noch nicht so ganz klar ist
ob deine Java-Installation funktionstüchtig ist. Guck mal hier:

http://www.java-forum.org/java-faq-beitraege/8431-ubersicht-faq.html


----------



## Java-Laie (10. Dez 2011)

Fab1 hat gesagt.:


> Also, du hast in deinem srv Verzeichnis 5 Dateien und in jeder dieser Dateien steht in der ersten Zeile (bzw fast ganz oben) das mit package inplaceshuffle; oder so ähnlich, wenn du diese Zeile in der Datei löscht bzw. auskommentierst, dann funktioniert es. In dem du das Projekt in Eclipse ausführst (das grüne Zeichen) oder F11 sollte auch funktionieren glaub ich. Zumindest habe ich bei mir nichts anderes geändert.



Also, Ihr ward ja alle sehr nett und geduldig (danke!), aber Du, Fab1, bist für mich der Held des Tages/Abends! Jetzt, nach dem Auskommentieren aller package-Zeilen, funktioniert es! Ich kann es kaum fassen. Schade, daß ich dafür nicht mehr als einen Dank vergeben kann.
 Das hätte ich allein nie herausgefunden, da hätte ich wochenlang irgendwelche Manuskripte wälzen können.

Mir ist zwar völlig schleierhaft, wieso diese package-Befehle dort enthalten sind und warum sie ein solch destruktives Eigenleben bewirken/entwickeln und warum der Compiler sich davon so "aus dem Tritt" bringen läßt, aber das zu klären ist jetzt vielleicht etwas zuviel des Guten.

Bliebe noch das Debugging, das "Hindurchsteppen" mit Anzeige der relevanten Werte, aber nicht heute abend. Ich versuche es erst einmal allein bzw. mit Hilfe des Stöberns und Lesens.

Nochmals besten Dank an alle!


----------



## Java-Laie (10. Dez 2011)

gman hat gesagt.:


> Hi,
> 
> ich habe mir auch mal (kurz) das Programm angeschaut. Ich habe einfach in Eclipse
> ein neues Java-Projekt angelegt und dann im Datei-Explorer den Unterordner von
> ...



Also lief es? Auch mit package-Befehlen?



gman hat gesagt.:


> So sollte es funktionieren, obwohl ja anscheinend noch nicht so ganz klar ist
> ob deine Java-Installation funktionstüchtig ist. Guck mal hier:
> 
> http://www.java-forum.org/java-faq-beitraege/8431-ubersicht-faq.html



Wie jetzt? Verstehe ich nicht. Erstens: Warum sollte meine - frisch installierte - Indigo-Installation fehlerhaft sein? Und was hat das zweitens mit den Forum-FAQ zu tun? Edit: Frage 2 ziehe ich zurück, es geht dort nur oben um das Forum, weiter unten um Java selbst.


----------



## Fab1 (11. Dez 2011)

So jetzt funktioniert es wenigstens um zu Debuggen musst du wie ja bereits mal erwähnt wurde Breakpoints setzen und anschließend auf Debug klicken, ist links neben dem Ausführen Button.
Mit F6 kannst du dann durch den Code steppen.

Was mich noch interessieren würde, eclipse müsste eigentlich den Fehler der nicht hinzugefügten Packages rot unterstreichen.


----------



## Ralph-Uwe (11. Dez 2011)

Guten Morgen,

ich habe das Projekt wie oben von mir beschrieben in Eclipse eingebunden
und es lief auf anhieb.

Keine Fehlermeldungen, keine Probleme. :toll: 

Gruß


----------



## Java-Laie (11. Dez 2011)

Erneut vielen Dank!



Fab1 hat gesagt.:


> So jetzt funktioniert es wenigstens um zu Debuggen musst du wie ja bereits mal erwähnt wurde Breakpoints setzen und anschließend auf Debug klicken, ist links neben dem Ausführen Button.
> Mit F6 kannst du dann durch den Code steppen.



Ja, funktioniert prima, danke! Ich fand den "Key Assist(ent)". (Ctrl+)F5, F6, F7, alles klar. Gibt es auch eine Möglichkeit, zum nächsten Breakpoint zu springen? Dazu fand ich keine(n) Tastendruck bzw. Tastenkombinationsdruck. Macht sich nämlich bei Schleifen ungünstig, diese Schleifenwiederholungen mitzumachen. Allerdings gibt es auch eine Umgehungslösung (bei kurzen Schleifenkörpern): Schleifenkopf und Schleifenkörper in nur eine einzige Zeile zu packen.



Fab1 hat gesagt.:


> Was mich noch interessieren würde, eclipse müsste eigentlich den Fehler der nicht hinzugefügten Packages rot unterstreichen.



Daran kann ich mich nicht entsinnen, das ist mir jetzt auch egal, denn ich bin heilfroh, daß das erst einmal im Debugmodus läuft. Bis hierher war es schon eine Zangengeburt mit leichter Tendenz zum Kaiserschnitt.

Vielen Dank und viele Grüße

Java-Laie


----------



## gman (11. Dez 2011)

> Also lief es? Auch mit package-Befehlen?



Ja, weil ich halt den Unterordner von "src" (aus dem Zip) mit kopiert habe. Wenn du 
nur die *.java-Dateien in das "src"-Verzeichnis von Eclipse kopierst liegen
die im default-Package und dann schlagen natürlich auch die "package"-Zeilen
fehl bzw. führen zu einem Fehler. Das hätte Eclipse eigentlich auch anmeckern
müssen.

Kurz erklärt: Die Java-Packages sind nur Unterordner des "src"-Verzeichnisses.
Wenn du also eine Klasse in ein Package packst (per "package de.wasauchimmer")
dann muss die .java-Datei auch im Ordner "src/de/wasauchimmer" liegen.



> Gibt es auch eine Möglichkeit, zum nächsten Breakpoint zu springen?



Du kannst das Programm auch einfach weiter laufen lassen (den grünen "Play"-Knopf).
Wenn der Breakpoint am Schleifenkopf gesetzt ist, wird das Programm bei jedem 
Schleifendurchgang anhalten. Setz einen Breakpoint auf die erste Zeile nach der Schleife
wenn du die Schleife komplett überspringen willst.


----------



## Java-Laie (11. Dez 2011)

Ralph-Uwe hat gesagt.:


> Guten Morgen,
> 
> ich habe das Projekt wie oben von mir beschrieben in Eclipse eingebunden
> und es lief auf anhieb.
> ...



Tja, dann bist Du eben ein Glückspilz, worauf ich ein wenig neidisch bin. Wenn zwei das gleiche tun, ist eben noch lang nicht dasselbe. Bei mir spüren das Java SDK und/oder Indigo, daß ich ein Einsteiger bin, und damit ich es als solcher nicht zu einfach habe und nocht tüchtig lerne, weil ich noch zuhauf zu lernen habe, machen die mir es eben schwerer als Dir! 

Zumindest Warnungen müßtest Du aber auch bekommen haben, weil einige Deklarationen überflüssig waren. Die zu entfernen, gelang sogar mir allein.

Viele Grüße

Java-Laie


----------



## gman (11. Dez 2011)

> Bei mir spüren das Java SDK und/oder Indigo, daß ich ein Einsteiger bin,



Red dir nicht so eine Stuss ein! Wenn du Probleme hast, versuche die Ursache zu identifizieren
und suche dann nach einer Lösung. Gerade wenn du anfängst musst du wirklich bei jedem
Schritt darauf achten was du machst und solltest wissen warum du das so machst.

Du hast z.B. einfach Java-Dateien aus einer Ordnerstruktur in eine andere gepackt:
Da sollte man sich die Frage stellen ob so eine Ordnerstruktur vielleicht eine Rolle spielt.

Das soll jetzt keine Rüge sein, ich versuch dir nur zu erklären wie du dir das Leben/Lernen
vielleicht etwas leichter machst.


----------



## Java-Laie (11. Dez 2011)

gman hat gesagt.:


> Ja, weil ich halt den Unterordner von "src" (aus dem Zip) mit kopiert habe. Wenn du
> nur die *.java-Dateien in das "src"-Verzeichnis von Eclipse kopierst liegen
> die im default-Package und dann schlagen natürlich auch die "package"-Zeilen
> fehl bzw. führen zu einem Fehler. Das hätte Eclipse eigentlich auch anmeckern
> müssen.



Ach, es gab so viele Mißerfolge, daß ich das nicht mehr genau weiß. Daß irgendewelche class-Dateien als fehlend moniert wurden, kann ich mich aber noch genau erinnern.



gman hat gesagt.:


> Kurz erklärt: Die Java-Packages sind nur Unterordner des "src"-Verzeichnisses.
> Wenn du also eine Klasse in ein Package packst (per "package de.wasauchimmer")
> dann muss die .java-Datei auch im Ordner "src/de/wasauchimmer" liegen.



So ganz schlau werde ich aus den Antworten nicht. Weiter oben schrieb jemand, daß die class-Dateien nicht zwingend erforderlich sind, weil diese beim Compilieren selbst erzeugt wird (das sagt mir auch mein Spürsinn, denn das müssen ja irgendwelche (Pre-)Compilate sein, ein kurzer Blick dorthin verrät es). Original (ich veränderte die Verzeichnisstruktur ja nicht) lagen sie in einem anderen Unterverzeichnis. Eigentlich mußte das doch so von einer Java-IDE (von welcher, weiß ich nicht) so erstellt worden sein und die Java-IDEs müßten doch alle - zumindest weitgehend - untereinander kompatibel sein, so daß die das auch finden müßten.



gman hat gesagt.:


> Du kannst das Programm auch einfach weiter laufen lassen (den grünen "Play"-Knopf).
> Wenn der Breakpoint am Schleifenkopf gesetzt ist, wird das Programm bei jedem
> Schleifendurchgang anhalten. Setz einen Breakpoint auf die erste Zeile nach der Schleife
> wenn du die Schleife komplett überspringen willst.



Ja, danke, ist klar!

Viele Grüße

Java-Laie


----------



## Java-Laie (11. Dez 2011)

gman hat gesagt.:


> Red dir nicht so eine Stuss ein! Wenn du Probleme hast, versuche die Ursache zu identifizieren
> und suche dann nach einer Lösung. Gerade wenn du anfängst musst du wirklich bei jedem
> Schritt darauf achten was du machst und solltest wissen warum du das so machst.



Das war doch ein SCHERZ. Reichte selbst das Emoticon nicht, das zu verdeutlichen?


----------



## gman (11. Dez 2011)

> Im src-Verzeichnis liegen nur die java-Dateien (mit dieser Endung).





> Original (ich veränderte die Verzeichnisstruktur ja nicht) lagen sie in einem anderen Unterverzeichnis.



Was denn jetzt? Ich bin davon ausgegangen das du die Java-Dateien einfach in das "src"-Verzeichnis des
neuen Eclipse-Projektes kopiert hast. Wenn ja war das dein Fehler, wie ich schon weiter oben geschrieben
habe. Du hättest eben das "andere Unterverzeichnis" (ich glaube es ist "inplaceshuffle" oder so) mit den
Java-Dateien in das "src"-Verzeichnis des Eclipseprojektes kopieren müssen.


----------



## Java-Laie (11. Dez 2011)

gman hat gesagt.:


> Was denn jetzt? Ich bin davon ausgegangen das du die Java-Dateien einfach in das "src"-Verzeichnis des
> neuen Eclipse-Projektes kopiert hast. Wenn ja war das dein Fehler, wie ich schon weiter oben geschrieben
> habe. Du hättest eben das "andere Unterverzeichnis" (ich glaube es ist "inplaceshuffle" oder so) mit den
> Java-Dateien in das "src"-Verzeichnis des Eclipseprojektes kopieren müssen.



Nein, ich übernahm das Projekt so mit seiner Verzeichnisstruktur, wie ich es hier veröffentlichte. Sicher werde ich später die class-Dateien verschoben bzw. kopiert haben, aber wann, wohin und mit welchem (Miß-)Erfolg, das vermag ich nicht mehr zu reproduzieren. Gestern abend war es der pure Streß für mich.

Es läuft doch jetzt erstmal, insofern bin ich zufrieden und dankbar.

Leider ist das Hinzufügen von Variablen in das (fast) gleichnamige (Unter-/Teil-)Fenster der nächste in Indigo eingebaute Intelligenztest, an dem ich zu scheitern drohe (ich ahnte bis befürchtete es bereits). Mit Copy bei den Variablen gibt es kein Paste in dem Variables-Fenster. Weder aus Help - Eclipse Platform noch aus Java Debugging with Eclipse - Tutorial bin ich bislang schlaugeworden.

Erneut viele Grüße und vielen Dank für Eure Geduld!

Java-Laie


----------



## gman (11. Dez 2011)

> Leider ist das Hinzufügen von Variablen in das (fast) gleichnamige (Unter-/Teil-)Fenster



Verstehe ich das richtig: Du willst beim Debuggen neue Variablen hinzufügen?

Das geht natürlich nicht. Ich glaube man kann den Wert der Variablen ändern (was ich aber noch
nie probiert habe), aber neue Variablen muss man schon vorher in den Code einfügen.


----------



## Java-Laie (11. Dez 2011)

gman hat gesagt.:


> Verstehe ich das richtig: Du willst beim Debuggen neue Variablen hinzufügen?
> 
> Das geht natürlich nicht. Ich glaube man kann den Wert der Variablen ändern (was ich aber noch
> nie probiert habe), aber neue Variablen muss man schon vorher in den Code einfügen.



Jein. Ich möchte keine "wirklich" neuen Variablen einführen, sondern lediglich im Quelltext vorhandene in das "Variables"-Fenster hineinbekommen - ansonsten wäre das Debugging nicht so sehr hilfreich (gut, zum Aufspüren, an welchen Stellen kritische Programmsituationen (Abbruch/Exeptions) auftreten, gerade so noch, aber ohne Ursachenaufspürung).

Das Tutorial unter vogella.de (oben verlinkt) z.B. behauptet, daß man nach dem Aufrufen einen Zustand hat wie bei ihm. Nein, habe ich nicht, denn bei mir ist das Variables-Unterfenster leider leer, und wie er die eine Variable (args) vom Typ String) dort hineingezaubert hat, kann ich der Beschreibung leider nicht entnehmen. "Add a new variable" (oder, unmißverständlicher: "Add an existing variable"), das wäre es doch, doch danach suche ich mir einen Wolf. Und an solchen unnötigen Klitzekleinigkeiten scheitert man als Einsteiger leider erbarmungslos.

Vielleicht schreibe ich eine E-Mail dorthin, falls ich es anderweitig nicht erfahre.

Vielen Dank erneut und viele Grüße

Java-Laie

Edit: "Add a new variable" in Google gesucht - ich finde diese Diskussion....


----------



## Sly (11. Dez 2011)

Ralph-Uwe hat gesagt.:


> Guten Morgen,
> 
> ich habe das Projekt wie oben von mir beschrieben in Eclipse eingebunden
> und es lief auf anhieb.
> ...



Bei mir auch. Zuerst hatte ich den Fehler "The declared package "inplaceshuffle" does not match the expected package """, nachdem ich aber das Package unter src erzeugt hatte lief alles ohne Fehler. Ganau das Gegenteil von dem, was hier vorgeschlagen wurde.


----------



## gman (11. Dez 2011)

Wenn ich in Main.java in Zeile 27 einen Breakpoint setze, werden die Variablen "args", "ch" und "Ns"
in dem Variables-Fenster angezeigt.
Es könnte sein das du unter "Debug" eine falsche Zeile ausgewählt hast. Guck mal in den Screenshot.


----------



## Java-Laie (11. Dez 2011)

gman hat gesagt.:


> Wenn ich in Main.java in Zeile 27 einen Breakpoint setze, werden die Variablen "args", "ch" und "Ns"
> in dem Variables-Fenster angezeigt.
> Es könnte sein das du unter "Debug" eine falsche Zeile ausgewählt hast. Guck mal in den Screenshot.



Danke!

Das Debug-Teilfenster ist bei mir leer. Der Reiter "Server" fehlt komplett, den ich finde auch unter Window->Show View nicht, aber der ist wohl hoffentlich auch nicht wichtig.

Selbst, wenn ich im Debug-Fenster etwas hätte: Bedeutet das, daß man explizit Breakpoints setzen muß, um die Variablen in das Variables-Fenster hineinzubekommen?

Viele Grüße

Java-Laie

Edit: Ich lud soeben eine Bildschirmkopie meiner Eclipse-IDE hoch. Das Variablenfenster ist leer wie das Vakuum.


----------



## gman (11. Dez 2011)

Naja, wenn du keine Breakpoints setzt rennt das Programm ja einfach durch. Angezeigt wird ja nur
etwas wenn du auch durch das Programm "steppst". Und dafür brauchst du ja mindestens einen
Breakpoint.
Den "Server"-Reiter brauchst du nicht, ist ja schliesslich eine Java-Standalone-Anwendung.


----------



## Java-Laie (11. Dez 2011)

gman hat gesagt.:


> Naja, wenn du keine Breakpoints setzt rennt das Programm ja einfach durch. Angezeigt wird ja nur
> etwas wenn du auch durch das Programm "steppst". Und dafür brauchst du ja mindestens einen
> Breakpoint.
> Den "Server"-Reiter brauchst du nicht, ist ja schliesslich eine Java-Standalone-Anwendung.



Breakpoints sind aber zwei beispielhaft gesetzt. Zeile 23 (eine von beiden) enthält auch Code mit Variablen (Chronometer=new Chronometer(); ). Dazu lud ich in meinem vorigen Beitrage eine Bildschirmkopie hoch. Egal, in welche Zeile ich einen Breakpoint auch setze, es tut sich nur noch etwas im Breakpoints-Teilfenster.

Viele Grüße

Java-Laie


----------



## gman (11. Dez 2011)

Öhm, das Programm hast du dann aber auch mal mit "Debug -> Debug As -> Java Application" 
ausgeführt? Die Breakpoints werden natürlich erst wirksam wenn das Programm im Debug-Modus
läuft.


----------



## Java-Laie (11. Dez 2011)

gman hat gesagt.:


> Öhm, das Programm hast du dann aber auch mal mit "Debug -> Debug As -> Java Application"
> ausgeführt? Die Breakpoints werden natürlich erst wirksam wenn das Programm im Debug-Modus
> läuft.



Volltreffer!

Tausend Dank!

Ist eben nur begrentzt ein Vorteil, wenn man schon mit anderen IDEs gearbeitet hat.

Etwas unbehaglich ist mir dennoch dabei: Werden wirklich alle mich interessierenden Variablen angzeigt werden?

Ich schätze mal, daß ich jetzt allein weiterkomme, ansonsten melde ich mich noch einmal.

Vielen Dank für Eure Hilfe und Eure Geduld - meine war schon überstrapaziert, jedoch bemühte ich mich, mir das nicht anmerken zu lassen.

Viele Grüße

Java-Laie


----------



## gman (11. Dez 2011)

> Werden wirklich alle mich interessierenden Variablen angzeigt werden?



Es wird alles angezeigt was im momentanen Scope "zu sehen ist". Wenn dir das nichts sagt,
kannst du hier mal nachgucken:

Galileo Computing :: Java ist auch eine Insel - index


----------



## Java-Laie (11. Dez 2011)

Was ich Euch noch schuldig bin, nämlich das, worum es überhaupt geht: Sicher sind hier auch und gerade etliche Informatiker unterwegs, die das schon mehr oder weniger erkannten und die damit etwas anfangen können. Es handelt sich um einen ziemlich neuen stabilen in-situ Mergesortalgorithmus, den ich in mein Sortieranimationsprogramm aufzunehmen gedenke. Um diesem seine Geheimnisse zu entlocken - die Skripte reichen dafür für mich nicht aus - erbettelte ich mir die Quelltexte (sicher eine Machbarkeitsstudie), die ich von einem der Autoren zum Glück auch erhielt (immerhin). Vom bloßen Lesen derselben werde ich nicht ausreichend schlau, dazu kenne ich C und seine Derivate leider zuwenig. Deshalb ist dieses mein "Fremdgehen" in einer anderen IDE zwecks Debugging erforderlich.


----------

