# Java von Kopf bis Fuß



## Michi1986 (22. Dez 2011)

Guten Tag,

ich habe gerade angefangen das Buch Java von Kopf bis Fuß zu lesen. Ich stoße bei der Installation auf folgende Probleme:

hier steht:

Nach dem Herunterladen und entpacken müssen Sie einen Eintrag zu Ihrer *PATH*-Umgebungsvariablen hinzufügen, der auf das Verzeichnis */bin* innerhalb des Haupt-Java-Verzeichnisses verweißt. Wenn bspw. das JSDK ein Verzeichnis auf ihrer Festplatte anlegt, das >>j2sdk.1.5.0<< heißt, sehen Sie in diesem Verzeichnis nach; Sie finden dort das Verzeichnis: *bin*, in dem Sie die ausführbaren Java-Binärdateien (die Werkzeuge) liegen. Für dieses *bin*-Verzeichnis brauchen Sie einen *PATH*-Eintrag; dadurch weiß Ihr Terminal, wo es den Compiler javac findet, wenn Sie auf der Kommandozeile *%javac* eingeben.

Bitte helft mir doch damit, ich weiß nicht so recht was zu tun ist;-)

API documetation hab ich gedownloadet!

Beste Grüße, Michi


----------



## Kiri (22. Dez 2011)

Wo ist denn das Problem, findest du deinen Pfad nicht oder weißt du nicht wo der Classpath eingetragen wird oder was? Und welches Betriebssystem hast du?


----------



## Michi1986 (22. Dez 2011)

danke zunächst für die schnelle Hilfe. Ich weiß überhaupt garnicht was ich hier machen soll! Ich hoffe du/ihr könnt mir helfen! Soll ich irgendetwas mit der API Documentation machen?


----------



## Kiri (22. Dez 2011)

Nein, die Dokumentation ist zum Nachschlagen gedacht, da steht im Prinzip alles über Java drin.

Also, du brauchst das Java Development Kit, welches du wie ein normales Programm installierst.

Du findest es hier: Java


----------



## Michi1986 (22. Dez 2011)

Java 6 Update 21 habe ich und als Oberfläche Eclips Indigo! Aber was soll ich jetzt laut des Textes tun?


----------



## ehlr (22. Dez 2011)

Bei den Umgebungsvariablen die Path Variable auf das \bin Verzeichnis setzen.


Vermutlicher Path :

*C:\Program Files\Java\jdk1.6.0_21\bin*


Da du ja Java 6 Update 21 benutzt.


----------



## Kiri (22. Dez 2011)

Du suchst den Ordner bin, bei mir ist der hier:

C:\Program Files\Java\jdk1.7.0_02\bin

dies wäre dann auch genau der Pfad (von dir natürlich angepasst!), der in den PATH muss.

Wenn du Win 7 hast findest du den PATH ganz einfach:

- Tastenkombination: Windows + Pause
- dann erweiterte Systemeinstellungen
- Umgebungsvariablen
- und da  Systemvariablen, hier sollte es PATH geben, da fügst du deinen Pfad hinzu


----------



## Michi1986 (22. Dez 2011)

- und da Systemvariablen, hier sollte es CLASSPATH geben, da fügst du deinen Pfad hinzu!

ja den gibt es und das bin- Verzeichnis habe ich auch gefunden! soll ich den Classphab bearbeiten oder etwas neu erstellen?


----------



## Kiri (22. Dez 2011)

Michi1986 hat gesagt.:


> - und da Systemvariablen, hier sollte es CLASSPATH geben, da fügst du deinen Pfad hinzu!
> 
> ja den gibt es und das bin- Verzeichnis habe ich auch gefunden! soll ich den Classphab bearbeiten oder etwas neu erstellen?



bearbeite es, du kannst deinen Pfad hinten dran hängen. Die angegebenen Pfade müssen durch ein Semikolon getrennt werden


----------



## Michi1986 (22. Dez 2011)

so, hab ich gemacht, Semikolon und ohne Leerzeichen den Phad angehangen! Und ich wäre dir sehr dankbar wenn du mir jetzt noch sagst was ich da eigentlich gerade gemacht habe und wozu. Aber auch so, vielen Dank


----------



## Kiri (22. Dez 2011)

Michi1986 hat gesagt.:


> so, hab ich gemacht, Semikolon und ohne Leerzeichen den Phad angehangen! Und ich wäre dir sehr dankbar wenn du mir jetzt noch sagst was ich da eigentlich gerade gemacht habe und wozu. Aber auch so, vielen Dank



Also, wenn du jetzt z.B. in der Konsole deine Quellcode wie folgt komplilieren willst

javac test.java

weiß dein PC jetzt, wo er das Programm javac findet! Diese Programm liegt in dem bin Ordner, den du angegeben hast. Schau da einfach mal nach. Da finden sich noch mehr Programme, die man benutzt.

[TIPP]Schreibe die Beispiele aus dem Buch zumindest am Anfang nicht in Eclipse sondern mit einem gewöhnlichen Editor wie Notepad++ und kompilier über die Konsole. Der Lerneffekt ist besser. Auf Eclipse oder Netbeans solltest du erst später umsteigen.[/TIPP]


----------



## Michi1986 (22. Dez 2011)

... und wie kompilier ich den Quelltext von Wordpad bspw. über die (Konsole?) ???

Für die ganzen ANtworten bekommst du auf jedenfall einen DANK


----------



## Blackhole16 (22. Dez 2011)

Michi1986 hat gesagt.:


> ... und wie kompilier ich den Quelltext von Wordpad bspw. über die (Konsole?) ???



Hey Michi1986,

Du hast jetzt eine Datei geschrieben, z.B. Hello.java.
Diese speicherst du in einem bestimmten Order ab, den du dir merken musst 
Jetzt öffnest du über windows-Taste+R das ausführenfenster und gibst cmd (command[MS-DOS-Befehlszeile]) ein.
Dort wechselt du, wenn du noch nicht auf der richtigen Partition bist mit z.B. 
	
	
	
	





```
D:
```
 und einer bestätigung mit enter auf die richtige.
Jetzt gehst du mit 
	
	
	
	





```
cd "Ordner/Unterordner"
```
 in den richtigen Ordner.
Nun gibst du 
	
	
	
	





```
javac name.java
```
 ein, in meinem beispiel also "javac Hello.java" (achte auf die Groß-/Kleinschreibung, sonst ist es ein fehler...).
Nun müsste sich im selben Ordner der Hello.java-Datei eine Hello.class-Datei sein.
In cmd gibst du nun (den richtigen Ordner vorausgesetzt) "java Hello" ein und führst so die Datei aus.

mfg
BH16


----------



## Kiri (22. Dez 2011)

Michi1986 hat gesagt.:


> ... und wie kompilier ich den Quelltext von Wordpad bspw. über die (Konsole?) ???


Im Buch auf Seite 14 findest du den Quellcode fürs BierLied. Diesen schreibst du ab z.B. in Wordpad und speicherst es als BierLied.java (wichtig: der Titel muss genauso geschrieben werden, wie der Speichername. Dateiendung .java nicht .txt!). Dann wechselst du in der Konsole in den Ordner, wo du BierLied.java gespeichert hast und gibst 
*javac BierLied.java*
 ein. Wenn du alles richtig gemacht hast, findest du nun in dem Ordner die Datei BierLied.class, welche du wie folgt starten kannst 
*java BierLied*.



> Für die ganzen ANtworten bekommst du auf jedenfall einen DANK


Nicht DANK schreiben - sondern Danke-Button drücken (findest du unten rechts bei den Antworten  )


----------



## Michi1986 (23. Dez 2011)

er speichert mir mein Document als Party.java.rtf ab in Wordpad! Ich habe jetzt nen Ordner auf dm Desktop angelegt, da die Datei reingeschmissen und im cmd gesagt: cd Desktop/Test(mein Unterodner) und dann javac Party.java! Es tut sich aber nichts! Was mache ich verkehrt?

Danksagung geht nur bei angemeldeten Usern, oder?


----------



## puelo (23. Dez 2011)

Hallo,

Du musst die ".rtf" Endung entfernen, also der Datei name muss natürlich: "Party.java" heißen.

.rtf kommt durch die Verwendung von WordPad, weil das der Dateityp ist den es benutzt.

Ich würde dir empfehlen, entweder mit Notepad, Notepad++ (gibt es kostenlos),  oder am Besten gleich mit Eclipse zu arbeiten.

EDIT: Des weiteren glaube ich nicht, dass du mit "cd Desktop" auf den Desktop zugreifen kannst.

In Windows 7 sieht das ganze z.B so aus "cd C:\Users\Benutzername\Document"...Dann befindest du dich in den "Eigenen Dateien"

Du kannst auch (zumindest bei Windows 7) einfach zu dem Ort wo die Datei gespeichert ist navigieren, dann Rechtsklick oben auf die Addressleiste und "Addresse als Text kopieren" auswählen.
Jetzt kannst du im CMD mit Rechtsklick und Einfügen den Pfas einfügen!


----------



## Michi1986 (23. Dez 2011)

selbst damit geht es nicht! jetzt habe ich genau die Datei! Habe gesagt im cmd Desktop und den Unterordner Test, jetzt gebe ich javac Party.java ein und es passiert nichts! was stimmt da nicht!


----------



## Kiri (23. Dez 2011)

Michi1986 hat gesagt.:


> er speichert mir mein Document als Party.java.rtf ab in Wordpad! Ich habe jetzt nen Ordner auf dm Desktop angelegt, da die Datei reingeschmissen und im cmd gesagt: cd Desktop/Test(mein Unterodner) und dann javac Party.java! Es tut sich aber nichts! Was mache ich verkehrt?


die rtf-Endung muss weg. Ich weiß nicht, ob du mit Wordpad eine Datei als java speichern kannst. Ich empfehle dir notepad++, das ist eine Allzweckwaffe und kostenlos. (kannst du hier downloaden.

Gibt es eine Fehlermeldung, wenn ja - immer mitposten. Wenn es klappt siehst du nichts, außer das in deinem Ordner die .class Datei erscheint.




> Danksagung geht nur bei angemeldeten Usern, oder?


 Möglich, meld' dich an tut nicht weh - versprochen


----------



## Michi1986 (23. Dez 2011)

doch, also er zeigt ihn mir mit dem Unterordner auf jeden Fall an


----------



## puelo (23. Dez 2011)

Ach..vergessen oben.

Du musst erst "javac Party.java" machen
und dann noch "java Party" um das Programm auszuführen!


----------



## Michi1986 (23. Dez 2011)

jetzt kommt:

could not find the main class: Party Programm will exit! 

Was ist nun?


----------



## Kiri (23. Dez 2011)

Michi1986 hat gesagt.:


> jetzt kommt:
> 
> could not find the main class: Party Programm will exit!
> 
> Was ist nun?



Poste mal deinen Quellcode.


----------



## Michi1986 (23. Dez 2011)

import java.awt.*;
import java.awt.event.*;
class Party {
public void erstelleEinladung () {
Frame f= new Frame();
Label l = new Label("Party bei Jim");
Button b = new Button ("Sicher doch");
Button c = new Button ("Ohne mich");
Panel p = new Panel();
p.add(l);
}// mehr Code ...
}


----------



## Kiri (23. Dez 2011)

folgendes immer beachten:
*Java™ Quelltext ist bitte in 
	
	
	
	






		Java:In die Zwischenablage kopieren


-Tags zu schreiben: [code=Java]hier Java Code einfügen

*

Dein Code enthält keine main.

Das heißt dein Quellcode muss so etwas enthalten:


```
public static void main(String[] args){
  //Anweisungen, etc.
}
```
sonst geht es nicht


----------



## Michi1986 (23. Dez 2011)

Ich habe das nur aus dem Buch abgeschrieben und wollte das so eintipseln und ausführen lassen! Ich habe bisher nur Scheme/Racket Vorkenntnisse!

Könnt ihr mir mal quellcode geben, damit ich mal testen kann ob es geht?!


----------



## Kiri (23. Dez 2011)

```
public class HalloWelt{
	public static void main(String[] args){
		System.out.println("Hallo Welt");
		System.out.println("Geht doch!!!!!");
	}
}
```

speichern als:
*HalloWelt.java*

kompilieren:
*javac HalloWelt.java*

ausführen:
*java HalloWelt*


----------



## Michi1986 (23. Dez 2011)

warum geht das net! Habe es genauso gemacht! er zeigt mir im cmd schon Desktop und den Ordner Test an, wo die datei drinne ist! aber er macht es nicht sobald ich es so eingebe wir ihr er sagt!


----------



## Kiri (23. Dez 2011)

Fehlermeldung?



> aber er macht es nicht sobald ich es so eingebe wir ihr er sagt!


ist keine Aussage mit der man was anfangen kann.


----------



## Michi1986 (23. Dez 2011)

Could not find the main class HalloWelt.

das selbe wie vorhin


----------



## Kiri (23. Dez 2011)

du hast aber in deinem Ordner jetzt eine Datei *HalloWelt.class*?

Ich bin gleich weg!


----------



## Michi1986 (23. Dez 2011)

im Ordner Test: NEIN


----------



## Kiri (23. Dez 2011)

aber *HalloWelt.java*


----------



## Michi1986 (23. Dez 2011)

Ja, der ist da;-) hab ich ja reingeschoben


----------



## Kiri (23. Dez 2011)

dann machst du jetzt
javac HalloWelt.java

postest die Fehlermeldung bzw. schaust ob jetzt die Datei HalloWelt.class da ist


----------



## Michi1986 (23. Dez 2011)

Exception in threat "main" java.lang.NoClassDefFoundError: HalloWelt
Caused by: java.lang.ClassNotFoundException: HalloWelt
at java.net.URLClassLoader$1.run<unknown Source>

usw... 

brauchst du alles vom Fehler?


----------



## Kiri (23. Dez 2011)

ja


----------



## Michi1986 (23. Dez 2011)

also bei javac HalloWelt.java kam die Meldung das ichs wohl falsch geschrieben habe, oder es nicht gefunden wurde! 

Als ich dannach java HalloWelt eingegeben habe kam folgende Meldung: ... folgt ...


----------



## Kiri (23. Dez 2011)

Für 

*java HalloWelt*

brauchst du die Datei HalloWelt.class, solange du die nicht hast, brauchst das nicht machen.

Zuerst muss

*javac HalloWelt.java*

fehlerfrei laufen, denn hier machst du die *HalloWelt.class*, deshalb interessiert mich dieser Fehler und zwar ganz.


----------



## Michi1986 (23. Dez 2011)

Exception in threat "main" java.lang.NoClassDefFoundError: HalloWelt
Caused by: java.lang.ClassNotFoundException: HalloWelt
at java.net.URLClassLoader$1.run<unknown Source>
at java security.AccessController.doPrivileged<Native Method>
at java.net.URLClassLoader.findClass<unknown Source>
at java.lang.ClassLoader.loadClass <Unknown Source>
at sun.misc.Launcher$AppClassLoader.loadClass<Unknwon Source>
at java.lang.ClassLoader.loadClass <Unknown Source>
Could not find the main class: HalloWelt. Program will exit.


----------



## Michi1986 (23. Dez 2011)

kann das auch damit zusammenhängen was wir vorhin gemacht haben? ich meine diese Umgebungsvariable;-)?


----------



## Michi1986 (23. Dez 2011)

Ich habe ja javac nicht falsch geschrieben, von daher hat er es nicht gefunden! Aber wie soll er es finden? er kennt doch nur meine HalloWelt.java Datei! die heißt ja nicht HalloWelt.javac


----------



## Kiri (23. Dez 2011)

Michi1986 hat gesagt.:


> kann das auch damit zusammenhängen was wir vorhin gemacht haben? ich meine diese Umgebungsvariable;-)?



Dann müsste als Fehlermeldung kommen, dass er die Befehle javac bzw. java nicht kennt - denke ich.

Nochmal, solange du keine .class hast, geht der Befehl java nicht, deshalb ist die Fehlermeldung bei javac HalloWelt.java wichtig. (Es würde schon nicht gehen, wenn du das W klein geschrieben hättest.)

Ich bin jetzt weg, es wird sich sicher morgen früh jemand melden. Wäre cool, wenn du dich anmelden würdest.


----------



## Kiri (23. Dez 2011)

Michi1986 hat gesagt.:


> Ich habe ja javac nicht falsch geschrieben, von daher hat er es nicht gefunden! Aber wie soll er es finden? er kennt doch nur meine HalloWelt.java Datei! die heißt ja nicht HalloWelt.javac



javac --> ist das Kompilierprogramm im bin-Ordner, nicht die Dateiendung (dachte du hättest das schon lange verstanden!)

du schreibst doch hoffentlich javac HalloWelt.java und nicht javac HalloWelt.javac

So, it's late!


----------



## Michi1986 (23. Dez 2011)

das hat mit der Umgebungsvariable zutun denk ich!

ich habe 2 mal Java auf dem Rechner! sehe ich gerade, vllt stimmt das irgendwasnicht überein?!

Danke erstmal  

Mache ich morgen!


----------



## Michi1986 (23. Dez 2011)

C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip;C:\Program Files\Java\jre6\bin

das steht Aktuell in der Umgebungsvariable!


----------



## Kiri (23. Dez 2011)

Schmeiß Java runter, packe ne aktuelle Version drauf und passe die Umgebungsvariable an. Alles was du brauchst steht in diesem Thread!

Wäre nett wenn du dich anmeldest, bei ca. 20 Beiträgen ohne Danke sinkt meine Quote gewaltig, also tue mir den Gefallen und drück ein paar Danke-Button


----------



## Michi1986 (23. Dez 2011)

Okay, dann erkläre mir dann bitte morgen noch wie ich das Package dann drauf bekomme das die Programmoberfläche wieder Deutsch ist! Bitte!


----------



## Michi1986 (23. Dez 2011)

So ein Misst, ich habe jetzt Java komplett runter gehauen und 7.02 drauf gemacht! Da sich aber die PATH Umgebungsvariable und noch so eine QT Java variable nicht geändert hat, habe ich sie gelöscht, weil ich dachte diese erstellt sich neu bei neuinstallation! Was mache ich nun?


----------



## Michi1986 (23. Dez 2011)

so, die classdatei habe ich jetzt schonmal im Ordner! Aber wenn ich jetzt: das Programm starten will kommt die Meldung: 

Folgende Datei kann nicht geöffnet werden: HalloWelt.java

Webdienst für die Suche nach richtigem Programm verwenden.

Programm aus einer Liste installierter Programme auswählen.

Was ist nun das Problem?


----------



## puelo (23. Dez 2011)

Du musst jetzt folgendes machen:

1. Du gehst in den neu installierten Java Ordner.
2. Dort gehst du in den Ordner "bin".
3. Jetzt kopierst du oben die Adresszeile mit Rechtsklick -> "Adresse als Text kopieren" (Zumindest bei Windows 7)
4. Das fügst du nun als Pfad ein, bzw. ersetzt das alte damit!

Jetzt probierst du nochmal in der CMD:

1. "javac HalloWelt.java" -> keine Fehlermeldung? Gut, weiter, ansonsten diese hier posten, am Besten mit Quellcode!
2. "java HalloWelt" -> Keine Fehlermeldung? Gut, dann sollte in der Kommandozeile folgendes erscheinen: "Hallo Welt!" , "Geht doch..."...


----------



## Marcinek (23. Dez 2011)

Das Problem sitzt hier doch vor dem Rechner. 

Sorry. Zu einem Thema, dass hier in den FAQs beschrieben ist und in jedem Buch auf Seite 1 existiert hier wieder ein Thread mit 50 Beiträgen, une keine Lösung in sicht.

1. Programm kompilieren: javac MeineDatei.java

2. Programm starten: java MeineDatei

Wenn das nicht geht, dann

http://www.java-forum.org/einfuehrungen-erste-schritte/16581-jdk-sdk-installieren-einrichten.html


----------



## ARadauer (23. Dez 2011)

Sorry aber das sind 2 Schritte simple Schritte. Konzentrier dich und schreib das sauber ab.



Michi1986 hat gesagt.:


> so, die classdatei habe ich jetzt schonmal im Ordner! Aber wenn ich jetzt: das Programm starten will kommt die Meldung:
> 
> Folgende Datei kann nicht geöffnet werden: HalloWelt.java



Wie kann das sein? Wie kann es sein, dass du bereits kimpiliert hast und die java Datei wird nicht gefunden? Das ist doch egal!!! Du musst jetzt die class Datei ausführen. Der class ist die java Datei doch egal.

Also ganz einfach:
1.
javac HalloWelt.java
-> das macht aus der HalloWelt.java eine HalloWelt.class. Damit das klappt muss in der HalloWelt.java eine Klasse HalloWelt drinnen ein. Und ie HalloWelt.java muss im verzeichnis sein wo du javac ausführst. Damit javac gefunden wird muss das bin verzeichnis des JDK als PATH eingetragen sein.

2.
java HalloWelt
-> Das führt die HalloWelt.class aus. Dazu muss in der Klasse die Main Funktion vorhanden sein.

Das muss klappen, klappt auch immer. Ausser man schreibt javac HalloWelt, oder java HalloWelt.java oder java HalloWelt.class oder man hat die HalloWelt.java am Desktop und man fürt javac auf c: aus... oder man hat javac nicht im path, dann wird javac nicht gefunden... usw...

Was du jetzt machst.
dir
Screenshot
javac HalloWelt.java
Screenshot
java HalloWelt
screenshot

diese 3 Screenshot postest du


----------



## ARadauer (23. Dez 2011)

ach ja vielleicht vorher
java -version
und
javac -version ausprobieren


----------



## Michi1986 (23. Dez 2011)

Hab den Fehler behoben


public class DooBee {
public static void main (String[] args) {
int x = 1; 
while (x < 3){
System.out.print ("Doo");
System.out.print ("Bee");
x = x + 1;
}
if(x == 2) {
System.out.print ("Do");
}
}
}

warum geht der Quellcode nicht?


----------



## Helgon (23. Dez 2011)

Wie wärs mal mit Java-Tags und einrücken?

Alles richtig, geht doch, Einzig das der If-Block in die Schleife sollte


```
public class Test2 {
public static void main (String[] args) {
int x = 1; 
while (x < 3){
System.out.print ("Doo");
System.out.print ("Bee");
x = x + 1;
if(x == 2) {
System.out.print ("Do");
}
}

}
}
```


----------



## Michi1986 (23. Dez 2011)

warum ging das erste, und das Programm läuft bei mir nicht?


----------



## Helgon (23. Dez 2011)

Das erste ging auch und es läuft definitiv in beiden Variationen


----------



## ARadauer (23. Dez 2011)

Michi1986 hat gesagt.:


> warum ging das erste, und das Programm läuft bei mir nicht?


Mhn definitiv PEBCAK... echt was ist das für eine Frage?

Was heißt läuft nicht?


----------



## irgendjemand (23. Dez 2011)

@TO

ganz erliche frage : du hast so nicht viel mit computern zu tun oder sehe ich das richtig ?
ich verkneife mir mal bewusst die frage nach alter und bildungsstand ... aber meinst du nicht auch das du erstmal mit einem rechner umgehen können solltest bevor du versuchst ihn zu zwingen zu tun was du ihm sagst ?

für mich hört sich das alles nach gewaltiger überschätzung an ... da du fundamentale grundlagen die man besitzen sollte um sich auf das gefährliche glatt-eis des programmierens zu behen scheinbat nicht hast ...
dazu zählen unter anderem korrektes einrichten von system- und user-umgebungsvariablen , das auffinden der richtigen software sowie deren programm-verzeischnisse und -binärdaten ... kenntnisse über das editieren eines sog. RAW-text/plain types : WordPad ist nun wirklich die falsche wahl ... verwende lieber Notepad ... besser natürlich editoren mit syntax-highlight wie Notepad++ oder Notepad2 *beide sehr zu empfehlen* .... grundlegender umgang mit dem befehlszeileninterpreter *du schreibst was davon das die .java datei im UNTER-ordner TEST liegt ... und das javac diese datei nicht finden kann ... naja wie wäre es denn wenn du erstmal in den unterordner TEST wechselst *mit [c]cd test[/c]* anstatt dich darüber zu wundern das eine datei mit gegebenen namen am aktuellen ort nicht existiert ...


wie gesagt : übe dich erstmal im grundlegenden umgang mit dem medium PC bevor du versuchst diesem abzuverlangen das er etwas tut was du versuchst ihm gewalltsam zu befehlen ...

alles andere macht nur wenig bis keinen sinn


----------



## Michi1986 (24. Dez 2011)

class MischMasch1 {
public static void main (String [] args) {

int x = 3;

if (x > 2) {
System.out.print ("a");
}

while (x > 0) {{

x = x - 1;
System.out.print ("-");

if (x == 2) {
System.out.print ("b c");
}

if (x == 1);{{
System.out.print ("d");
}}}

x = x - 1;}

}
}


Ich möchte gern die Ausgabe a-b c-d herausbekommen!

Was mache ich verkehrt?


----------



## puelo (24. Dez 2011)

Michi1986 hat gesagt.:


> class MischMasch1 {
> public static void main (String [] args) {
> 
> int x = 3;
> ...



Liest du eigentlich die Antworten die dir gegeben werden auch mal? Auf so einer Basis ist es echt schwer bis unmöglich dir zu helfen....


----------



## Kiri (24. Dez 2011)

[TIPP]Die Lösung steht im Buch auf Seite 25![/TIPP]


----------



## Marcinek (24. Dez 2011)

Erinnert mich iwie an den Forentroll von letzter Woche :lol:


----------



## Helgon (24. Dez 2011)

Hitman?


----------



## Michi1986 (30. Dez 2011)

class Uhr {
String zeit;
void setZeit(String z){
	zeit = z;
}
String getZeit() {
	return zeit;
}
}

class UhrTestlauf {
	public static void main (String []args) {
		Uhr c = new Uhr();
		c.setZeit("12345");
		String heute = c.getZeit();

		System.out.println("Zeit: " + heute);

	}
}

der Quellcode lässt sich kompilieren, aber warum kommt nicht der String "12345" ?


----------



## Fab1 (30. Dez 2011)

Was meinst du? ich bekomme als Ausgabe:

Zeit: 12345

Weiß jetzt zwar nicht wie weit du in dem Buch bist, aber Instanzvariablen sollten private sein.

Oder was möchtest du sonst erreichen?


----------



## Michi1986 (30. Dez 2011)

Welche Java Version hast du?

Bei mir kommt kein Fehler, aber auch keine Ausgabe!


Ja, gut, private, hab ich vergessen!


----------



## Fab1 (31. Dez 2011)

JRE6 hab ich drauf. Aber an dem kann es nicht liegen, kann mir nicht vorstellen das in den letzten Versionen an solchen Grundbefehlen etwas geändert wurde.

Kann mir zwar nicht vorstellen, das dies das Problem behebt, da mein eclipse dies gekonnt ignoriert hat, aber setze mal bei der Klasse UhrTestlauf noch public voraus also


```
public class UhrTestlauf
```

Außer natürlich der Name deiner Klasse(Datei) ist Uhr, dann mach public mal bei Uhr 

Sonst hat immer als Problemlos funktioniert?


----------



## Michi1986 (31. Dez 2011)

geht auch nicht!

Hatte bisher keine Probleme, doch jetzt macht er einfach nichts!

Ich habe Java 7!


----------



## Michi1986 (31. Dez 2011)

Ich vertehe die Aufgabe wirklich überhaupt nicht! kann mir das jemand mal erklären?


public class MischMasch4 {
int zähler = 0;
public static void main (String []args) {
int anzahl = 0;
int x = 0;

MischMasch4 [] m4a = new MischMasch4[20];

while (x < 9) {

	m4a[x] = new MischMasch4();
	m4a[x].zähler = m4a[x].zähler + 1;
	anzahl = anzahl + 1;
	anzahl = anzahl + m4a[x].vielleichtNeu(x);


	x = x + 1;
}

System.out.println(anzahl + " " + m4a[8].zähler);

}
public int vielleichtNeu(int index) {
	if (index < 6){
		MischMasch4 m4 = new MischMasch4();
		m4.zähler = m4.zähler + 1;
		return 1;
	}
	return 0;
}
}


----------



## Final_Striker (31. Dez 2011)

Ist dir schon mal der dicke und rote Hinweis aufgefallen?

*Java™ Quelltext ist bitte in 
	
	
	
	






		Java:In die Zwischenablage kopieren


-Tags zu schreiben: [code=Java]hier Java Code einfügen[/ JAVA][/COLOR][/B]

ach und noch was:

[url]http://www.java-forum.org/forum-faq-beitraege/7407-man-fragen-richtig-stellt.html[/url]

*


----------



## Michi1986 (31. Dez 2011)

Okay, sorry!

Also ich verstehe die Programmierung bis es an die untenstehende RETURN - Anweisung geht! Ich verstehe die Ausgabe nicht wirklich! Ich überlege schon die ganze Zeit wie man auf die Ausgabe kommt, stehe aber total auf dem Schlauch ;-) Könnt ihr mit helfen?



```
public class MischMasch4 {
int zähler = 0;
public static void main (String []args) {
int anzahl = 0;
int x = 0;

MischMasch4 [] m4a = new MischMasch4[20];

while (x < 9) {
	
	m4a[x] = new MischMasch4();
	m4a[x].zähler = m4a[x].zähler + 1;
	anzahl = anzahl + 1;
	anzahl = anzahl + m4a[x].vielleichtNeu(x);
	
	
	x = x + 1;
}

System.out.println(anzahl + " " + m4a[8].zähler);

}
public int vielleichtNeu(int index) {
	if (index < 6){
		MischMasch4 m4 = new MischMasch4();
		m4.zähler = m4.zähler + 1;
		return 1;
	}
	return 0;
}
}
```


----------



## Fab1 (31. Dez 2011)

Hier wird die untenstehende Methode aufgerufen


```
anzahl = anzahl + m4a[x].vielleichtNeu(x);
```

und die Aufgerufene Methode gibt, wenn die übergebene Zahl x kleiner als 6 ist eine 1 zurück

somit wird die Variable anzahl um 1 erhöht, ist dies nicht der Fall wird die Zahl 0 addiert somit wird nichts geändert.


----------



## Michi1986 (3. Jan 2012)

Fab1 hat gesagt.:


> Hier wird die untenstehende Methode aufgerufen
> 
> 
> ```
> ...



Wenn du das so sagst, dann müsste ja bei x = 7 ein anderes Ergebnis herauskommen als bei x = 5 ! Dies ist aber nicht der Fall! Ich wäre sehr sehr dankbar wenn mir das mal einer Erklären könnte.

Ich verstehe das so das zuerst die Zahl 0 bei dem zweiten 1 usw... dann irgendwann die 7! Es kommt immer das selbe heraus! 

Ich danke euch


----------

