Welche Sprache für Anfänger?

AW: Welche Sprache für Anfänger?

Wenn dir das Verständnis noch etwas fehlt, ist es übrigens keine schlechte Idee, am Anfang ein paar kleine Programme ganz ohne IDE zu bauen.

Nimm dafür einfach einen Texteditor (sogar Notepad reicht), schreib den Quellcode da rein, nenn die Datei dateiname.java und dann gehts los.
Mit der Konsole (Start -> Ausführen -> cmd) navigierst du zu dem Ort, an dem sich dein Java-Kompiler befindet (dort wo du das JDK installierst hast) und öffnest damit die .java-Datei.
Sieht dann also beispielsweise so aus:
Code:
C:\Pfad\zum\JDK\bin>javac.exe C:\Pfad\zum\Quellcode\dateiname.java
Und anschließend kannst du das Kompilat ausführen:
Code:
C:\Pfad\zum\JDK\bin>java.exe C:\Pfad\zum\Programm\dateiname
(das .class wird tatsächlich weggelassen, Pfad zum Programm ist per default der gleiche wie der Pfad zum Quellcode)

Wenn du dir den Spaß mit dem Pfad zum JDK sparen willst, müsstest du dir eine neue Umgebungsvariable im Windows dafür einrichten.


Das ist auf keinen Fall etwas was du immer tun sollst, aber am Anfang ist das ganz nett, um das Verständnis zu fördern, was Eclipse da eigentlich macht.
 
Zuletzt bearbeitet:
AW: Welche Sprache für Anfänger?

Das mit der neuen Umgebundsvariablen habe ich ja schon alles wegen der Videos gemacht,

Aber geht das denn nicht, dass ich einfach z.B. eine einzelne Datei habe, die ich dann (ohne Start->Ausführen->...) öffnen kann?
 
AW: Welche Sprache für Anfänger?

Kannst auch eine Verknüpfung anlegen die direkt java.exe mit dem Argument "dateiname.java" ausführt, dann hast du was worauf du zum Starten des Programmes doppelt klicken kannst.

Oder du machst dich eben doch an das erstellen von Jar Dateien, oder du programmierst Applets statt "vollwertiger" Javaprogramme.

Exe-Dateien kannst du aus einem Java Programm afaik nur über Wrapper machen.
 
AW: Welche Sprache für Anfänger?

Also:

1. Wie geht das mit der Verknüpfung und dem Argument?
2. Welche Programme können Jar-Dateien lesen & ausführen?
3. Was ist Wrapper?
 
AW: Welche Sprache für Anfänger?

1. Teil zwei von Thomsns Post in einer Verknüpfung verpackt.
2.Im Endeffekt werden sie vom JDK ausgeführt. Solang das installiert ist merkst du aber keinen Unterschied zu einer Exe.
3.Google;)
 
AW: Welche Sprache für Anfänger?

soweit bin ich auch schon gekommen, mit dem Wrapper, bin aber nicht schlau draus geworden ;)

Aber ich denke, ich speichere die dann einfach als .jar

Achso und mein erstes Programm ist endlich fertig (ihr wolltet es ja haben ;)).

Hier der Quellcode, ist aber auch nochmal im Anhang als .java und .class Datei (und das mit der Verknüpfung musst du mir wohl nich etwas genauer erklären ;)):

import java.util.Scanner;
class Rechner{
public static void main(String args[]){
Scanner Alex = new Scanner(System.in);

Double Spritkosten, Spritverbrauch, Spritverbrauch1, Treibstoff, Spritverbrauch3, Spritpreis, Spritverbrauch2, Kosten;
int CO2Steuern2, CO2Steuern1, Hubraum, CO2Steuern, Hubraum1, Hubraum2, Hubraumsteuer1, Hubraumsteuer, Steuern;


System.out.println("Bitte CO2-Ausstoss pro km eingeben und Enter druecken!");

CO2Steuern1 = Alex.nextInt();
if (CO2Steuern1 < 120){CO2Steuern1 = 120;}
else {}
CO2Steuern2 = CO2Steuern1 - 120;
CO2Steuern = CO2Steuern2 * 2;


System.out.println("Bitte Hubraum in cm³ angeben und Enter druecken!");

Hubraum = Alex.nextInt();
Hubraum1 = Hubraum / 100;
Hubraum2 = Hubraum1++;

System.out.println("Haben sie einen Benziner oder Diesel? Fuer den Benziner 1 druecken, fuer den Diesel die 2");

Treibstoff = Alex.nextDouble();
if (Treibstoff == 1){Hubraumsteuer1 = Hubraum2 * 200;}
else {Hubraumsteuer1 = Hubraum2 * 950;}

Hubraumsteuer = Hubraumsteuer1 / 100;

Steuern = Hubraumsteuer + CO2Steuern;

System.out.println("Geben sie jetzt bitte die aktuellen Treibstoffkosten fuwr den von Ihnen genutzten Treibstoff an (in Euro)");

Spritpreis = Alex.nextDouble();

System.out.println("Geben sie jetzt ihren Spritverbrauch auf 100km an (in Litern)!");

Spritverbrauch1 = Alex.nextDouble();

System.out.println("Vieviele km fahren sie im Monat?");

Spritverbrauch2 = Alex.nextDouble();
Spritverbrauch3 = Spritverbrauch2 / 100;
Spritverbrauch = Spritverbrauch1 * Spritverbrauch3;
Spritkosten = Spritverbrauch * Spritpreis;
Kosten = Spritkosten + Steuern;


System.out.println("Danke fuer ihre Angaben! Ihr ergebnis sieht so aus:");
System.out.println();
System.out.print("Durch ihren CO2-Ausstoss von ");
System.out.print(CO2Steuern1);
System.out.print("g/km muessen sie " );
System.out.print(CO2Steuern);
System.out.println(" Euro im Monat an Steuern für ihren CO2-Ausstoss bezahlen.");
System.out.print("Da ihr Auto " );
System.out.print(Hubraum);
System.out.print("Kubikzentimeter Hubraum hat, muessen sie monatlich ");
System.out.print(Hubraumsteuer);
System.out.println(" Euro an Steuern fuer ihren Hubraum bezahlen.");
System.out.println();
System.out.print("Das ergibt eine Monatliche Steuerbelastung von ");
System.out.print(Steuern);
System.out.println(" Euro.");
System.out.println();
System.out.print("Da sie im Monat ");
System.out.print(Spritverbrauch2);
System.out.print(" Kilometer fahren und sie ");
System.out.print(Spritverbrauch);
System.out.print(" Liter Treibstoff auf 100km verbrauchen, welcher momentan zu ");
System.out.print(Spritpreis);
System.out.print("€ pro Liter angeboten wird, kostet sie das Monatlich weitere ");
System.out.print(Spritkosten);
System.out.println("€");
System.out.println();
System.out.print("Wenn man nun ihre Monatlichen Kosten für Steuern und Treibstoff zusammenzaehlt, weiß man, dass ihr Auto ca. ");
System.out.print(Kosten);
System.out.print(" Euro Euro im Monat aus ihrem Porte-Monnaie zieht ;)");
}

}
 
Zuletzt bearbeitet:
AW: Welche Sprache für Anfänger?

Unabhängig von deinem Problem mal ein paar Anmerkungen zum Programm:
1.Variablennamen werden immer klein geschrieben, innere Worte als "CamelCase". Das ist Java Konvention.
2.Wenn man eine Variable erstellt initialisiert man sie normalerweise auch anschließend.
Bei den Zahlen meist mit 0. Also(unter Beachtung von 1.) "spritKosten=0;" usw.
2.5 Ich persönlich finde es wesentlich übersichtlicher wenn man Variablen einzeln erstellt. Bei der Gelegenheit kann man dann auch prima initialisieren. Also steht da dann
double spritKosten=0;
double spritVerbrauch=0;
.
.
.
3.du kannst mit einem + mehrere Strings zu einem Ausgabestring verbinden.
Also statt
System.out.println();
System.out.print("Durch ihren CO2-Ausstoss von ");
System.out.print(CO2Steuern1);
System.out.print("g/km muessen sie " );
System.out.print(CO2Steuern);
System.out.println(" Euro im Monat an Steuern für ihren CO2-Ausstoss bezahlen.");

Einfach
System.out.println("Durch ihren CO2-Ausstoss von "+CO2Steuern1+"g/km muessen sie "+CO2Steuern+" Euro im Monat an Steuern für ihren CO2-Ausstoss bezahlen.")
(und Kleinschreibung sollte man natürlich trotzdem korrigieren ;) ) .

Zu deinem Problem:
Wenn ich mich richtig erinnere hatte der Compiler Probleme mit der Unicode Codierung von Notepad. Versuch es mal mit speichern der .java Datei in ANSI.
 
AW: Welche Sprache für Anfänger?

1. Dass du nicht gefahr läufst das Programm zu killen nur weil villeicht die Variable noch nicht vom User gefüllt wurde. Aktuell nicht gefährlich, bei größeren Programmen aber tödlich.

2.Math.round() rundet auf ganze Stellen. wenn du z.B. zwei stellen hinter dem komma haben wilsst musst du die Zahl vorher mit 100multiplizieren und dann wieder teilen etc.
also
zahl= Math.round(zahl*100.)/100.;
 
AW: Welche Sprache für Anfänger?

Gibts auch eine Funktion, die NUR aufrundet, auch wenns z.B. 1,2 ist?

Und jetzt ist schon wieder n Problem aufgetreten:

Wenn ich versuche zu kompillieren, bekomme ich die Fehlermeldung "Class names, "Rechner", are only accepted if annotation processing is expelicitly requested"

Was ist das nu wieder?
 
AW: Welche Sprache für Anfänger?

Das initialisieren ist vor allem dann extrem wichtig wenn du ggf. Exception Handling oder ein eigenes Error Management aufsezt. So kannst du gegen den Anfangswert testen um darauf dann reagieren. Seeehr nützlich.
Außerdem läuft man nicht Gefahr auf Speicherbereichen zu hantieren in denen Crap oder alte Daten stehen, das kann wirklich ein interessantes Verhalten hervorrufen :D

Zu deinem Fehler:

http://java.sun.com/docs/books/tutorial/getStarted/problems/

oder

http://www.softgames.de/forum/frage122379.html

ich hab beide nicht durchgelesen war aber das erste was google ausgespuckt hat ;) Daher mein Tipp an dich (nimm ihn bitte nicht krumm), wenn du Fehler hast die du nicht nachvollziehen kannst, kopier die Fehlermeldung einfach und such bei google danach. Wahrscheinlich bist du nicht der Erste und vorallem hoffentlich nicht der einzige der den Fehler hat.
 
AW: Welche Sprache für Anfänger?

Danke ;) Das wars, habe nur "javac rechner" statt "javac rechner.java" eingegeben. Aber jetzt habe ichs einmal fertig, jetzt ist hier wieder das alte Problem, hier ist der Fehlercode:

Exceotion in thread "main" java.lang.NoClassDefFoundError: Rechner/class
Caused by: java.lang.ClassNotFounfException: Rechner.class
at java.net.URLCClassLeader$1.run(Unknows Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(unknows Source)
at java.lang.ClassLoader.loadClass (unknows Source)
at sun.misc.Launcher$ApClassLoader.loadClass(unknows Source)
at java.lang.Classloader.loadClass(unknows Source)
Could not find the main class: Rechner.class. Programm will exit

Habe auch schon versucht, die Java-Datei vorher mit Eclipse zu speichern und dann zu compillieren aber das hat auch nichts geholfen. Und Goole spuckt auch nix aus
 
AW: Welche Sprache für Anfänger?

So scheint es ja einduetig nicht zu laufen ;)

Wie erstelle ich denn eine Jar-Datei? Scheint einfacher zu sein ;)
 
AW: Welche Sprache für Anfänger?

Jar Dateien sind schlichtweg Java Programme, die quasi platformunabhänig sind - laufen unter Linux per java -jar deinkram.jar, unter Windows mit Java.

Man kann das ganze auch noch in ne Exe packen.
 
AW: Welche Sprache für Anfänger?

Doch, man kann .exe daraus machen. Eclipse ist ja auch in Java geschrieben und eine .exe ;)

Java Exe Maker - exe4j Das sollte funktionieren. Habe es aber noch nciht selbst ausprobiert. Aber hefte das eher mal unter advanced techniques ab - erstmal musst du richtig programmieren lernen ;)
 
AW: Welche Sprache für Anfänger?

Da hätte ich aber noch eine Frage:

Wann benutze ich eine "Int"-variable und wann eine "double"-variable?
 
AW: Welche Sprache für Anfänger?

Also langsam gehts mir doch auf den Keks. Habe schon wieder die Fehlermeldung:

Exceotion in thread "main" java.lang.NoClassDefFoundError: Rechner/class
Caused by: java.lang.ClassNotFounfException: Rechner.class
at java.net.URLCClassLeader$1.run(Unknows Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(unknows Source)
at java.lang.ClassLoader.loadClass (unknows Source)
at sun.misc.Launcher$ApClassLoader.loadClass(unknows Source)
at java.lang.Classloader.loadClass(unknows Source)
Could not find the main class: Rechner.class. Programm will exit

Letztes mal hast daran gelegen, dass ich "java kostenrechner.class" statt "java kostenrechner" eingegeben hatte. Aber dieses mal funktioniert beides nicht, kompillieren tut er aber!

Irgendeine Idee? Google habe ich auch schon geguckt, da ist die Rede von einer falsch gesetzten Umgebungsvariablen aber das habe ich schon nachgeguckt, die ist richtig (C:/Programme/java/jdk1.60_18/bin).

Hier ist nochmal der Quellcode, habe ich jetzt etwas überarbeitet, jetzt sollte das Programm dann bis auch den Fehler fertig sein:


import java.util.Scanner;
class main{
public static void main(String args[]){
Scanner Alex = new Scanner(System.in);

Double Spritkosten, Spritkosten1, Spritverbrauch99, Spritverbrauch4, Spritverbrauch, Spritverbrauch1, Treibstoff, Spritpreis, Spritverbrauch2, Hubraum1, Hubraum4, Hubraum34, Kosten;
int CO2Steuern2, CO2Steuern3, CO2Steuern4, Hubraum22, CO2Steuern1, CO2Steuern, Hubraum2, Steuern, Hubraumsteuer, Hubraumsteuer99, Hubraum3, Hubraum;


System.out.println("Bitte CO2-Ausstoss pro km eingeben und Enter druecken!");

CO2Steuern1 = Alex.nextInt();
CO2Steuern3 = CO2Steuern1;
if (CO2Steuern1 < 120){CO2Steuern4 = 120;}
else {CO2Steuern4 = CO2Steuern1;};
CO2Steuern2 = CO2Steuern4 - 120;
CO2Steuern = CO2Steuern2 * 2;


System.out.println("Bitte den Hubraum in Kubikzentimetern und auf 100er aufgerundet angeben (bei 1979 also 2000 angeben)!");

Hubraum22 = Alex.nextInt();
Hubraum = Hubraum22 / 100;

System.out.println("Haben sie einen Benziner oder Diesel? Fuer den Benziner 1 druecken, fuer den Diesel die 2");

Treibstoff = Alex.nextDouble();
if (Treibstoff == 1){Hubraumsteuer99 = Hubraum * 200;}
else {Hubraumsteuer99 = Hubraum * 950;}

Hubraumsteuer = Hubraumsteuer99 / 100;

Steuern = Hubraumsteuer + CO2Steuern;

System.out.println("Geben sie jetzt bitte die aktuellen Treibstoffkosten (pro Liter) fuer den von Ihnen genutzten Treibstoff an (in cent)!");

Spritpreis = Alex.nextDouble();

System.out.println("Geben sie jetzt ihren Spritverbrauch auf 100km an (in Milliliter, bei 5.5l also 5500)!");

Spritverbrauch1 = Alex.nextDouble();
Spritverbrauch4 = Spritverbrauch1 / 100;

System.out.println("Vieviele km fahren sie im Monat?");

Spritverbrauch2 = Alex.nextDouble();
Spritverbrauch99 = Spritverbrauch4 * Spritverbrauch2;
Spritverbrauch = Spritverbrauch99 / 1000;
Spritkosten1 = Spritverbrauch * Spritpreis;
Spritkosten = Spritkosten1 / 100;
Kosten = Spritkosten + Steuern;

System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println("Danke fuer ihre Angaben! Ihr ergebnis sieht so aus:");
System.out.println();
System.out.print("Durch ihren CO2-Ausstoss von ");
System.out.print(CO2Steuern3);
System.out.print("g/km muessen sie " );
System.out.print(CO2Steuern);
System.out.println(" Euro im Monat an Steuern für ihren CO2-Ausstoss bezahlen.");
System.out.println();
System.out.print("Für ihren Hunbraum von ca. ");
System.out.print(Hubraum22);
System.out.print(" Kubikzentimetern müssen sie ");
System.out.print(Hubraumsteuer);
System.out.println(" Euro an Steuern pro Monat fuer ihren Hubraum bezahlen.");
System.out.println();
System.out.print("Das ergibt eine Monatliche Steuerbelastung von ");
System.out.print(Steuern);
System.out.println(" Euro.");
System.out.println();
System.out.print("Da sie im Monat ");
System.out.print(Spritverbrauch2);
System.out.print(" Kilometer fahren und sie ");
System.out.print(Spritverbrauch1);
System.out.print(" Milliliter Treibstoff auf 100km verbrauchen, welcher momentan zu ");
System.out.print(Spritpreis);
System.out.print(" Euro pro Liter angeboten wird, kostet sie das Monatlich weitere ");
System.out.print(Spritkosten);
System.out.println(" Euro");
System.out.println();
System.out.print("Wenn man nun Ihre monatlichen Kosten für Steuern und Treibstoff zusammenzaehlt, weiss man, dass ihr Auto ca. ");
System.out.print(Kosten);
System.out.print(" Euro im Monat aus ihrem Porte-Monnaie zieht ;)");
}

}
 
Zurück