Interpreter

Status
Nicht offen für weitere Antworten.
M

MichaelaHH

Gast
Hallo,

ich bin gaaanz am Anfang und schon habe ich ein Problem.

Bin also erst bei HalloWelt.java und arbeite mit dem Buch "Java2" von Markt & Technik :###
Aus dem Internet habe ich mir j2sdk1.4.2_05 geladen.

Ich habe ein Verzeichnis (c:\java-easy) erstellt, in welchem sich HalloWelt.java und zukünftig auch andere befinden werden.
Nun versuche ich diese Datei zu kompilieren, was problemlos gelingt. Nur beim interpretieren spuckt er mir "error1" aus.

Kopiere ich HalloWelt.java in das bin-Verzeichnis, kann ich es ohne Probleme kompilieren und interpretieren.

Versteht jemand das Problem und kann mir helfen?
Ansonsten einfach nachfragen, ich versuche mein Problem dann besser zu erläutern.


Michaela
 

foobar

Top Contributor
Wähle einfach einen Mirror in deiner Nähe und dann lad dir die deinem Betriebssystem entsprechende Eclipseversion runter.
 

Manfred

Bekanntes Mitglied
Ich würde für den Anfang BlueJ empfehlen! Verwenden wir in der Schule auch! Gerade am Anfang hilft dieser durch Grafische Darstellung das Prinzip von Klassén und Objekten zu verstehen!
Ausserdem braucht man keine main Methode um diverse Methoden zu starten und kann so einzelne Klassen schön testen.

"Bessere" IDE´s kannst nachher noch immer verwenden!

Und ganz ohne, naja....

www.bluej.org


Zu deiner Frage:

Die class Datei kannst du erstellen mit ??

javac Klasse.java

Dann sollte jedoch

java Klasse

auch funktionieren! Wichtig!! Gross und Kleinschreibung beachten, wenn die Datei Klasse.class heisst, darfst du nicht javac klasse eingeben! Auch wichtig: das .class weglassen!
 
M

MichaelaHH

Gast
Ganz doof scheine ich ja nicht zu sein, weil es mit dem Kompilieren und dem Interpretieren funktioniert, wenn sich die HalloWelt.java Datei im Java/bin Verzeichnis befindet.
Lege ich sie (wie im Buch beschrieben) in einem extra Verzeichnis (hier: c:/java-easy) ab, geht zwar das kompilieren, aber nicht mehr das interpretieren.
Das erscheint mir unlogisch...
 
B

bygones

Gast
also du kannst eine .class erstellen aber nicht per java aufrufen ?

wie rufst du denn java auf ?
Code:
java HalloWelt
ist der korrekte aufruf eine kompilierten Datei

falls er was von wegen:
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp
meldet schau mal hier:
http://java.sun.com/j2se/1.4/install-windows.html

PS: Bitte immer die Fehlermeldung von java mit angeben - dann geht es helfen schneller und einfacher
 
G

Guest

Gast
Hier geht es:

C:\Programme>cd java

C:\Programme\java>cd bin

C:\Programme\java\bin>javac HalloWelt.java

C:\Programme\java\bin>java HalloWelt
Hallo Welt!

C:\Programme\java\bin>

____________________________________________

Hier nicht:

C:\java-easy>javac HalloWelt.java

C:\java-easy>java HalloWelt
Error: could not open `C:\Programme\Java\j2re1.4.2_05\lib\i386\jvm.cfg'

C:\java-easy>


Dass er das nicht findet ist mir klar, denn es existiert nur
c:\java aber ohne den Unterordner j2re1.4.2_05
 

Manfred

Bekanntes Mitglied
Hmm vielleicht ist da bei der Installation was schiefgegangen. Einfacher Vorschlag: Erstelle das Verzeichniss wo er sucht und kopiere die Datei dort hinein!

Oder deinstalliere Java und installiere dannach komplett neu!
 

foobar

Top Contributor
Und wenn du schon mal dabei bist Java neu zu installieren, kannst du auch gleich Windoof deinstallieren und ein richtiges Betriebssystem(http://www.linuxiso.org/) installieren. Dann treten solche Probleme auch nicht mehr auf.
SCNR
 

Grizzly

Top Contributor
foobar hat gesagt.:
Und wenn du schon mal dabei bist Java neu zu installieren, kannst du auch gleich Windoof deinstallieren und ein richtiges Betriebssystem(http://www.linuxiso.org/) installieren. Dann treten solche Probleme auch nicht mehr auf.
SCNR
Ich unterstelle jetzt mal, dass das ironisch gemeint war. :)

@MichaelaHH:
Hast Du schon mal in die FAQ hier im Forum geschaut? Vielleicht gibt es da ein Tutorial für Java Anfänger.
 
B

bygones

Gast
das ist kein "normaler" VM Fehler - ich würde Manfreds Rat nehmen und JAva neu installieren
 
M

MichaelaHH

Gast
Ich bin's wieder,

so, das erste Problem ist überwunden. Ich hatte einen Ordner mit dem gesuchten Inhalt, er hatte bloß einen anderen Namen. Nach der Umbenennung funktionierte HalloWelt problemlos.

C:\>cd java-easy

C:\java-easy>cd HalloWelt

C:\java-easy\HalloWelt>javac HalloWelt.java

C:\java-easy\HalloWelt>java HalloWelt
Hallo Welt!

C:\java-easy\HalloWelt>


Das ist ja schön und gut. Nun habe ich mich an die nächste Aufgabe in meinem Buch gemacht.

Die sieht so aus:

Code:
// Beispiel für Variablenzuweisung
import java.lang.*;

public class Variablenzuweisung
  {
  public static void main(String[] args)
    {
    int      zahl;
    double   bruchzahl;
    String   str;

    zahl = 12345;
    bruchzahl = 9.9999;
    str = "Dies ist eine Zeichenkette";

    System.out.println(zahl);
    System.out.println(bruchzahl);
    System.out.println(str);
    }
  }



Compilieren ließ sich das, bloß weiter komm ich nicht. Bei mir sieht das dann so aus:


C:\>cd java-easy

C:\java-easy>cd Variablenzuweisung

C:\java-easy\Variablenzuweisung>javac Variablenzuweisung.java

C:\java-easy\Variablenzuweisung>java Variablenzuweisung
Exception in thread "main" java.lang.NoClassDefFoundError: Variablenzuweisung

C:\java-easy\Variablenzuweisung>


Ich weiß, jetzt kommt folgender Link von euch: http://www.java-forum.org/de/viewtopic.php?t=1527

Bloß ich komme trotzdem nicht weiter.
- Endung .class habe ich nicht verwendet
- classpath müsste richtig gesetzt sein, da es bei HalloWelt auch funktioniert - oder?
- public class Variablenzuweisung ist doch auch richtig - oder?
- das mit dem Packetnamen habe ich nicht ganz verstanden, aber darin vermute ich keinen fehler - irre ich mich?

Sorry für die Anfängerfragen, aber ich komme mit meiner Logik nicht weiter.
 
R

Roar

Gast
hehe wenigstens hast du die FAQ gelesen ;)
1. du brauchst java.lang nicht zu impoertieren, das wird automatisch gemacht.
2. gutes buch *daumenhoch*
3. ja wahrscheinlich liegts an der packageanweisung. wo zeigt denn dein classpath drauf? wenn dieser auf C:\java-easy zeigt, dann musst du deine Variablenzuweisung in das package Variablenzuweisung stecken ( packages schreibt man normalerweise klein)
also müsstest du am anfang deinre java datei: package variablenzuweisung; schreiben.
dann benenne den ordern Variablenzuweisung in variablenzuweisung um, dann kopmilier die datei, dann geh in /java-easy und dann führ aus: java variablenzuweisung.Variablenzuweisung

so geht das mit den packages. packages sind einfach nur verzeichnishierachieen, und am anfang der java datei steht das entsprechende package.

ich würd dir allerdings empfehlen deine javadateien erstmal in einem ordner(package) zu haben, denn es ist doch n bsischen blöd für jedes beispiel n neuen ordner anzulegen.
 
M

Michaela HH

Gast
hehe wenigstens hast du die FAQ gelesen
Ja, ich war mal ganz brav und habe die Such-Funktion betätigt. :D

2. gutes buch *daumenhoch*
Ich habe es mir nach Gefühl ausgesucht, wusste aber nicht, was mich erwartet.

3. ja wahrscheinlich liegts an der packageanweisung. wo zeigt denn dein classpath drauf? wenn dieser auf C:\java-easy zeigt, dann musst du deine Variablenzuweisung in das package Variablenzuweisung stecken ( packages schreibt man normalerweise klein)
also müsstest du am anfang deinre java datei: package variablenzuweisung; schreiben.
dann benenne den ordern Variablenzuweisung in variablenzuweisung um, dann kopmilier die datei, dann geh in /java-easy und dann führ aus: java variablenzuweisung.Variablenzuweisung
so geht das mit den packages. packages sind einfach nur verzeichnishierachieen, und am anfang der java datei steht das entsprechende package.

Das habe ich das als Java-Neuling noch nicht ganz verstanden...habe es irgendwie versucht - bekomme dann wunderschöne Fehlermeldungen. Wahrscheinliche habe ich dich falsch verstanden. Ich muss mich da wohl erst ein wenig mehr mit beschäftigen.

ich würd dir allerdings empfehlen deine javadateien erstmal in einem ordner(package) zu haben, denn es ist doch n bsischen blöd für jedes beispiel n neuen ordner anzulegen.
Das Buch hat mir das so empfohlen. Finde es auch ein wenig kompliziert :roll: .
Nun habe ich das geändert und kann mein Werk richtig begutachten! Danke, so geht es. Auch wenn das eigentliche Problem nicht gelöst ist - vorerst egal. Ich bin zufrieden. :D


Danke für Deine Hilfe :applaus:
 

Jaraz

Bekanntes Mitglied
Hi,

hast du eine Umgebungsvariable classpath erstellt, die nicht den . für das aktuelle Verzeichnis enthält sondern nur das HalloWelt Verzeichnis?
Am besten du löscht die Umgebungsvariable ganz, dann sollte das im richtigen Verzeichnis gehen.

den classpath kann man dann von Hand beim compilen und interpretieren setzen, mit: java -classpath .;c:\pfad Variablenzuweisung

Solltest du keinen classpath gesetzt haben, bist du nicht im richtigen Verzeichnis. ;)

Gruß Jaraz

Die eclipse, bluej und Linux Kommentare sind übrigens fürn *****
 
M

MichaelaHH

Gast
Mein Classpath ist c:\java-easy, also das Verzeichnis, in dem sich bis eben die Verzeichnisse "HalloWelt" und "Variablenzuweisung" befanden.
Was bei HalloWelt.java dann schließlich funktionierte, ging bei Variablenzuweisung.java nicht.
Warum & Wieso versteh ich immer noch nicht so ganz.
 

Manfred

Bekanntes Mitglied
Also ich weiss nur soviel, ich kann diesen Code in jedes Verzeichniss, und wenn es auch noch "so weit entfernt ist" legen und kompiliere und führe es ohne Probleme aus!

Ich würde dir nochmal empfehlen: Neuinstallation

Bzw. irgendein IDE (BlueJ), auch wenns von anderen nicht gern gesehen wird....

Denn sich am Anfang, wo man sowieso noch nicht wirlich den Durchblick bei Java hat, sich noch mit sowas herumplagen ist ja auch nicht gerade Sinnvoll! Und im Prinzip weisst du ja jetzt auch wie das kompilieren und ausführen 'per Hand' funktioniert
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben