# System.out cannot be resolved



## Nosferatu Alucard (7. Feb 2008)

Hallo,

ich brauche dringend Hilfe, weil ich ein Programm nicht zum laufen bekomme, dass morgen fertig sein muss.
Ich will etwas mit System.out.println(); ausgeben, bekomme aber immer den im Titel genannten Fehler!

Hier der entsprechende Ausschnitt:


```
/*
		 * Array ausgeben
		 */
		    
	        // jede Spalte abarbeiten
	        for(int i=0; i<ROW; i++) {
	            
	            // jede Spalte abarbeiten
	            for (int j=0; j<COL; j++) {
	                java.lang.System.out.print(aResult[i][j] + " ");
	            }
	            System.out.println();
	        }
```

Ich verstehe nicht, wo das Problem liegt, auch java.lang.System.out.println(); funktioniert nicht.
Entwicklungsumgebung ist eclipse.

Vielen Dank für schnelle Hilfe


----------



## Wildcard (7. Feb 2008)

1. Steht das auch in einer Methode?
2. Ist im Package Explorer ein JRE Container im Projekt eingeklinkt?
3. Eclipse schonmal neu gestartet?


----------



## Nosferatu Alucard (7. Feb 2008)

zu 1: Das ist ein Ausschnitt aus der main Methode

zu2: Im Package Explorer ist unter dem Namen des Projekts der src Ordner und darunter "(default package)" und "referenced libraries", also ich denke die Antwort ist nein

zu3: Ja das bringt nichts.

Ich sollte der vollständigkeit halber vielleicht erwähnen, dass es sich um ein lejos Projekt handelt, zur Programmierung eines Mindstorms Roboters.
Wobei das mit System.out eigentlich nichts zu tun haben sollte, oder?


----------



## SlaterB (7. Feb 2008)

wie lange programmierst du denn schon auf/ in diesem PC/ Entwicklungsumgebung/ Workspace/ Projekt/ Klasse?

lief jemals irgendwas?

läuft


```
public class Test
{
    public static void main(String[] args)
    {
        System.out.println("Hello World");
    }
}
```
im gleichen Projekt/ in einem neuen Projekt/ neuen Workspace?/ neue Eclipse-Version/ neuer PC?


----------



## Guest (7. Feb 2008)

Ich hab gerade im Referenced Libraries eine java.lang gefunden, die im System kein out enthält sondern nur exit, currentTimeMillis und getRuntime, kann es sein, dass das deswegen nicht funktiniert und ich eine andere java.lang benutzen muss?

Weil die im referenced libraries ist von lejos, nicht vom jdk.


----------



## Nosferatu Alucard (7. Feb 2008)

Ach so, die angegebene Testklasse funktioniert nur in einem neuen Java Projekt, nicht in leJOS Projekten, ich denke das ist die Bestätigung für meine These im Post darüber oder?


----------



## SlaterB (7. Feb 2008)

ich denke auch, kann persönlich aber nicht sagen, welche Libraries du verwenden kannst/ musst


----------



## Nosferatu Alucard (7. Feb 2008)

Ich denke, ich muss die library einbinden in der java.lang original vom jdk ist, nur wo finde ich die und binde die ein???


----------



## Wildcard (7. Feb 2008)

Wenn das Ding für Lego kompiliert werden soll, kannst du auch nur die Klassen verwenden, die die entsprechende VM Bereitstellt (sprich, alles was in der betreffenden rt.jar ausgeliefert wird).


----------



## Ariol (7. Feb 2008)

Bei Lejos schreibst du nicht auf die ausgabe sondern auf LCD.
Zum Beispiel:

```
LCD.drawString("Hallo" ,0,0) ;
```

Hier siehst du mehr: http://lejos.sourceforge.net/p_technologies/nxt/nxj/api/index.html

EDIT: Wenn du keinen NXT benutzt, weiß ich's aber auch nicht genau. Vielleicht ml nachsehen ob's da auch eine LCD-Klasse gibt ;-)


----------



## Nosferatu Alucard (7. Feb 2008)

Ok, ich glaub ich muss mal das gesamte Konzept erklären:

Ich soll einen Scanner bauen mittels Mindstorms und leJOS.

Den System.out Befehl benötige ich im Host Programm um das aus den Sensorwerten erstellte Bild (Strichzeichnung) auszugeben.

Das heißt die Ausgabe auf LCD bringt mir nichts.


----------



## Wildcard (7. Feb 2008)

Und wo soll der Standard Output Stream des Lego teils hin schreiben?


----------



## Nosferatu Alucard (7. Feb 2008)

Der Lichtsensor von Mindstorms nimmt Helligkeitsrozentwerte auf, diese werden auf schwarz (1) und weiß (0) vereinfacht. Diese Werte werden per Infrarot an das Host Programm geschickt und dort wird über ein Array und eben println dann entweder "." oder " " ausgegeben.


----------



## Wildcard (7. Feb 2008)

Dann ist dieses 'Host' Programm doch aber nicht von einer Lego VM abhängig, oder?


----------



## Ariol (7. Feb 2008)

Dann musst du deine chars (?) an deinen InfrarotSender schicken.

Wie du den ansteuerst kann dir hier vermutlich niemand sagen. In der API hab ich mal nix passendes gefunden.

Hast du evtl. eine Extra-Library für den Sender?
Ist der Sender ein Original Mindstorms-Teil?
Wie ist der Sender angeschlossen?

Und benutzt du NXT oder RCX?

EDIT: Achso, falsch verstanden.

Welche API benutzt du denn für dein Host-Programm (Sollte eigentlich mit der Standard-Java-API funktionieren).
Wenn du die benutzt sollte auch System.out kein Problem mehr sein.


----------



## Nosferatu Alucard (7. Feb 2008)

Also ich benutze den RCX.

Und das Host Programm benötigt die leJOS API, weil ich josx.rcxcomm.RCXPort benötige, um mit dem RCX kommunizieren zu können, mit der Standard API kann ich die Scanner Daten nicht empfangen


----------



## Ariol (7. Feb 2008)

Dann verwende beide Apis. Sollte afaik funktionieren.


----------



## Nosferatu Alucard (7. Feb 2008)

gut, nur wie mache ich das in Eclipse? Ich hab im Package Explorer nur den Punkt referenced libraries, wo die jar Files von leJOS drin sind, wie bekomme ich die JDK API noch dazu?


----------



## Wildcard (7. Feb 2008)

Wenn das überhaupt funktioniert, dann nur indem du ein normales Java Projekt machst und dort die benötigten jars von Lego einbindest (Properties -> build path)


----------



## Ariol (7. Feb 2008)

Wildcard hat gesagt.:
			
		

> Wenn das überhaupt funktioniert, dann nur indem du ein normales Java Projekt machst und dort die benötigten jars von Lego einbindest (Properties -> build path)



So meinte ich das. Man muss die Lejos-API auch garnicht als "echte" API einbinden, da das Programm eh nur in eine Binary umgewandelt auf Bot läuft. Dafür gibt's Extra-Programme.

Kann natürlich sein, dass es beim RCX anderst ist...wir haben damals mit dem NXT gearbeitet.


----------



## Nosferatu Alucard (7. Feb 2008)

super, danke für die Hilfe, jetzt kann ich das Host Programm endlich Fehlerfrei kompilieren.

Jetzt muss ich nur noch den Fehler beim kompilieren des Client Programms irgendwie loswerden:

Class josx.rcxcomm.RCXPort (filejosx/rcxcomm/RCXPort.class) not found in CLASSPATH js.tinyvm.ClassPath@1feabd6


----------



## Ariol (7. Feb 2008)

Hattest du den schon bevor du die Standard-API eingebunden hast?


----------



## Nosferatu Alucard (8. Feb 2008)

Die Meldung kommt ja beim Client Programm, das mit der Standard API nichts zu tun hat, also da ist nur die leJOS Api drin.


----------



## Wildcard (8. Feb 2008)

Als du also auf diesen Fehler im Client gestoßen bist, dachtest du dir 'Ui, dann mach ich eben den Server und produziere dort auch Fehler' ?
Über deinen Entwicklungsprozess solltest du noch ein wenig meditieren.


----------



## Ariol (8. Feb 2008)

Ok, ich dachte nur, du hättest beides in einem Projekt in verschiedenen packages.

Sieh mal in deiner lejos-API nach, ob die Klasse josx/rcxcomm/RCXPort.class drin ist.

Du kannst ja auch mal schreiben wie du das Programm kompilierst (tinyvm?)


----------



## Ariol (8. Feb 2008)

Grad ein bisschen gegoogelt:
Ist die Datei jtools.jar im Classpath?


----------



## Nosferatu Alucard (8. Feb 2008)

Hab die jtools.jar mal in den Classpath gepackt, ändert aber nichts. Kompilieren mach ich über Run As -> lejos. Woher das tinyVM kommt versteh ich auch nicht so ganz, ich denke mal dass das ein überbleibsel ist, weil leJOS ja quasi nur ne neue Version von tinyVM ist


----------



## Ariol (8. Feb 2008)

Bei deinem Lejos-download waren sicherlich auch ein paar exe-Dateien (bzw. Linux-Binaries) dabei. 

Lies dir mal auf der Lejos-Seite durch, wie du dein Projekt damit kompilierst - vllt. macht das Eclipse-plugin was falsch.
AFAIK ist das auch schon etwas älter und könnte dadurch unter Umständen Probleme mit einem neuen Eclipse haben.


----------



## Nosferatu Alucard (8. Feb 2008)

Naja da es morgen um 12 raus muss, werd ich es wohl mit dem Fehler abgeben (ich bracuh jetz dringend schlaf^^)  und mich vielleicht morgen nachmittag nochmal damit beschäftigen.

Auf jeden Fall nochmal vielen Dank für die rasche und gute Hilfe ^^


----------

