Aufruf funktioniert nicht

chris1803

Mitglied
Hallo zusammen

Ich muss sagen, ich bin (immer noch) Neuling in Java. Irgendwie geht mir der Syntax nicht ins Hirn (zu VB-verblendet).

Auf jeden Fall versuche ich mich gerade an einer kleinen Anwendung und erhalte immer die Meldung, dass ich aus einer statischen Methode nicht in eine nicht-statische Methode verweisen kann.
Die Meldung verstehe ich - soweit kann ich Deutsch/Englisch, aber ich kann nichts damit anfangen.

Hier mal mein Code (bitte nicht lachen):

Java:
import java.io.*;
import java.net.*;

class easyServer 
{
	BufferedReader in = null;
	ServerSocket server = null;
	Socket client = null;
	String line;



	public void listenSocket()
	{
System.out.println("done");

		//Set up Socket
		try
		{
			server = new ServerSocket(1243);
		}
		catch (IOException e)
		{
			System.out.println("Error on port 1243");
		}

		
		//Accept connection from client
		try
		{
			client = server.accept();
		}
		catch (IOException e)
		{
			System.out.println("Accept failed");
		}

		//Incoming data stream
		try
		{
			in = new BufferedReader (new InputStreamReader(client.getInputStream()));
		}
		catch (IOException e)
		{
			System.out.println("Read failed");
		}	


		//Reading incoming data stream and print to command line
		while(true)
		{
			try
			{
				line = in.readLine();
				System.out.println(line);
			}
			catch (IOException e)
			{
				System.out.println("Read failed");
			}
		}
	}

	//Clean up after connection ended
	protected void finalize()	
	{
		try
		{
			in.close();
			server.close();
		}
		catch (IOException e)
		{
			System.out.println("Error during closing");
		}
	}

	//Main method
	public static void main(String[] args)
	{
		listenSocket();
	}

}


Bin für Tipps und Anregungen offen.

Ich bedanke mich.

Christian
 

Volvagia

Top Contributor
Von einer statischen Methode kann keine nicht-statische Methode aufgerufen werden. :D
Vorschlag: Schau dir mal an, was es mit static auf sich hat.

Interessant, dass du einen Server versuchst, ohne von den Grundlagen eine Ahnung zu haben. btw. Klassennamen -> Groß, nur Ports ober 2048 verwenden.
 

TheDarkRose

Gesperrter Benutzer
naja, nur weil main in der selben Klasse ist wie dein listenSocket, heißt das nicht, dass du sie einfach so aufrufen kannst. main ist eine statische Methode und listenSocket eine Instanzmethode. D.h. musst du zuerst eine Instanz von easySocket in main erstellen und dann kannst du auf dieser instanz listenSocket aufrufen.
 

ARadauer

Top Contributor
Java:
public static void main(String[] args)
    {
easyServer server = new easyServer ();
       server.listenSocket();
    }

Die Meldung verstehe ich - soweit kann ich Deutsch/Englisch, aber ich kann nichts damit anfangen
ich denke, diese Frage wurde hier schon ca 16.567 mal gestellt. Nach 2 Sekunden googeln und 5 Minuten lesen sollte man das verstanden haben....
 

njans

Top Contributor
Das ganze kann man sich auch so erklären: Zur Laufzeit entstehen Objekte und sie werden wieder zerstört. Während statische Methoden immer an der selben Stelle während der Laufzeit sind, ist das bei Objekten nicht der Fall. Ergo musst du eine Möglichkeit bereit stellen, die die statische Methode Zugriff auf ein Objekt kriegt ;)
Das Objekt sollte bei dir ja irgendwo gehalten werden (von irgendeiner Variable) und daher könntest du dann mittels getter an das Objekt kommen :)
 

HoaX

Top Contributor
Interessant, dass du einen Server versuchst, ohne von den Grundlagen eine Ahnung zu haben. btw. Klassennamen -> Groß, nur Ports ober 2048 verwenden.
Wer im Glashaus sitzt ...
1024 ist die magisch Grenze. Und verboten ist es auch nicht darunter Ports zu nehmen, nur gibt es dann ggf. beim manchen OS Probleme wegen der Rechte.
 

Volvagia

Top Contributor
Wer im Glashaus sitzt ...
1024 ist die magisch Grenze. Und verboten ist es auch nicht darunter Ports zu nehmen, nur gibt es dann ggf. beim manchen OS Probleme wegen der Rechte.

Upsi. :oops: Ich wollte ihm nur Tipps geben. :) Ist ja auch nicht verboten kleingeschriebene Klassennamen zu verwenden, gibt nur bei manchen Leuten Probleme beim Unterscheiden zwischen Klassen- und Variablenamen. :)
 

chris1803

Mitglied
Ein grosses Danke an euch.

Klar, den Spott und die Kritik wegen "erst mal googlen" (hab ich) und "keine Ahnung von Java aber dann gleich Server/Client-Dinger schreiben" musste ich in Kauf nehmen. Aber ich habe ja nicht gar keine Ahnung von Programmierung, nur halt nicht in Java.

Aber auf jeden Fall noch mal Danke. Es funktioniert nun. Verbindung steht, Texte werden ausgetauscht.
Jetzt gehts an den nächsten Stolperstein.
Gruss
Christian
 

Volvagia

Top Contributor
Das war eigendlich nicht wirklich als Kritik sondern eher als erstaunt gemeint, weil es einfach ein sehr großes Ziel ist. Du setzt dich hin und nimmst dir sofort vor etwas größeres zu verwirklichen, finde ich Klasse.

Dein Exception Handling ist aber nicht optimal. Wenn z. B. in der while eine IOException fliegt (z. B. Connection reseted wenn die Gegenstelle beendet) wird "Read failed" in die Konsole geschrieben. Dabei erfährt man aber weder was genau falsch gelaufen ist bzw. wo es war. Damit wird die Fehlerbehandlung sehr erschwert. Falls es nur bei bestimmten anderen Benutzern aus irgend einen Grund auftritt (ob es solche Fälle bei Socketkommunikation gibt weiß ich nicht, aber allgemein) wird die Fehlerbehandlung so gut wie unmöglich.

Und finalize() eignet sich oft nicht zur primären Freigabe von Ressourcen. Die Methode wird erst ausgeführt, wenn das Objekt vom GC vernichtet wird, da du aber nie weißt wann das statt findet ist es nicht optimal. Freigaben werden i. d. R. durch ein finally gelöst. Das wird wie ein catch unter ein try geschrieben (es kann catch und finally oder nur jeweils eins davon geben, also einfach gesagt (catch || finally)), in das wird beim Verlassen des trys, catch oder wenn eine Exception getrowt wird gesprungen.
 
Zuletzt bearbeitet:

chris1803

Mitglied
Visionen muss man haben...

Ein kleines "hello world" bringe ich schon länger hin. Aber ich will ja an meinen Aufgaben wachsen ;-)

Ich werde versuchen deine Tipps im Code zu verarbeiten. Finalize habe ich zum ersten mal verwendet. Üblicherweise gehe ich am Anfang immer davon aus, dass das System sich selber bereinigt. Ein Neustart tut manchmal Not. Aber ich habe wieder was dazugelernt.

Vermutlich werde ich mit dem Ding noch ein Paar Mal hier aufschlagen. Allerdings in anderen Sektionen.

Christian
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
K Erste Schritte Stream-Aufruf vereinfachen Java Basics - Anfänger-Themen 3
sashady ursprüngliche Array-Werte bei erneutem Aufruf? Java Basics - Anfänger-Themen 7
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
Y Aufruf von Methode nicht möglich. Java Basics - Anfänger-Themen 2
D Aufruf von mehreren Activities bringt die app zum Absturz Java Basics - Anfänger-Themen 5
L Methoden Wie Löse ich ext Methoden Aufruf Fehler? Java Basics - Anfänger-Themen 3
X Methode bei mehrfachen Aufruf kein Effekt Java Basics - Anfänger-Themen 3
H Aufruf von Methoden durch Methoden Java Basics - Anfänger-Themen 3
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
O Verwirrt beim Java Collection Framework aufruf! Java Basics - Anfänger-Themen 9
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
R Methoden NPE beim Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 4
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
H Rekursiver Aufruf Java Basics - Anfänger-Themen 8
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
Henri Aufruf von getX() und getY() aus der Super klasse Objekt() Java Basics - Anfänger-Themen 3
E Aufruf auf Objekt mit übergebenem Wert? Java Basics - Anfänger-Themen 7
D Aufruf einer statischen Variable Java Basics - Anfänger-Themen 1
D Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 39
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
M Speichern von Objekten - Verfügbarkeit bei erneutem Aufruf Java Basics - Anfänger-Themen 3
S PHP Aufruf mit mehreren Variablen Java Basics - Anfänger-Themen 2
P Aufruf Methode anderer Klasse Java Basics - Anfänger-Themen 5
J Klassen Reihenfolge beim Aufruf von Klassen Java Basics - Anfänger-Themen 1
V Problem Aufruf einer Methode in einer Methode Java Basics - Anfänger-Themen 1
O Frage zum Aufruf überladener Methoden Java Basics - Anfänger-Themen 4
G funktions Aufruf aus GUI Java Basics - Anfänger-Themen 9
A Fehlermeldung beim aufruf der main Methode Java Basics - Anfänger-Themen 17
I Rückgabe und Aufruf einer Methode innerhalb einer anderen Methode Java Basics - Anfänger-Themen 5
W Zeitversetzter Aufruf der Methoden Java Basics - Anfänger-Themen 6
M Unbekannte Nummer bei Aufruf der toString Methode Java Basics - Anfänger-Themen 3
D Methode mit mehren Rekursiven aufrufen in Methode mit einem Rekursiven Aufruf umwandeln! Java Basics - Anfänger-Themen 1
F signiertes Applet fkt. nicht bei lokalem Aufruf Java Basics - Anfänger-Themen 2
A externer repaint Aufruf Java Basics - Anfänger-Themen 9
H Aufruf einer Instanzmethode funktionert nicht. Java Basics - Anfänger-Themen 6
A Konstruktor Aufruf Java Basics - Anfänger-Themen 4
Pentalon Ein Aufruf den ich nicht verstehe Java Basics - Anfänger-Themen 11
D dynamischer Aufruf Java Basics - Anfänger-Themen 2
N Aufruf der Methode Java Basics - Anfänger-Themen 16
L Next()-Aufruf zweimal innerhalb einer While-Schleife bei ListIterator Java Basics - Anfänger-Themen 10
S Aufruf Einer Methode aus einer anderen Klasse - Static Fehler Java Basics - Anfänger-Themen 4
A Aufruf der paint() Methode Java Basics - Anfänger-Themen 3
K Problem beim Array aufruf Java Basics - Anfänger-Themen 4
P URL für Lokalen Aufruf Java Basics - Anfänger-Themen 5
C OOP Aufruf von Methoden höherer Sichtbarkeit Java Basics - Anfänger-Themen 10
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
S Überladener Konstruktor und aufruf aus eigener Klasse Java Basics - Anfänger-Themen 2
A Aufruf von Konstruktor aus Basisklasse Java Basics - Anfänger-Themen 7
O OOP super aufruf 2 objekte? Java Basics - Anfänger-Themen 3
D Array Methoden Aufruf. Java Basics - Anfänger-Themen 14
L Klassen Aufruf einer ueberschreibbaren Methode im Konstruktor Java Basics - Anfänger-Themen 4
M OOP Aufruf vieler Getter Methoden abkürzen? Java Basics - Anfänger-Themen 7
Q Aufruf einer Klasse in einem Package Java Basics - Anfänger-Themen 7
T Aufruf einer Methoden aus einer Util-Klasse mit privatem Konstruktor Java Basics - Anfänger-Themen 7
G Aufruf externer Funktionen Java Basics - Anfänger-Themen 7
C Exception beim Aufruf einer Methode Java Basics - Anfänger-Themen 2
A Aufruf einer Methode Java Basics - Anfänger-Themen 3
J Aufruf von Funktionen in *.jar mittels Eclipse Java Basics - Anfänger-Themen 4
T Shell Script Aufruf mit Java Java Basics - Anfänger-Themen 7
R Aufruf statische Methode Java Basics - Anfänger-Themen 7
M Aufruf zum Objekt erstellen aus String Java Basics - Anfänger-Themen 5
K OOP Nachteil bei direktem Aufruf von run() auf Thread-Objekten Java Basics - Anfänger-Themen 2
J Aufruf der Methode Java Basics - Anfänger-Themen 6
P OOP Aufruf eines Interfaces Java Basics - Anfänger-Themen 4
E Konstruktor-Aufruf Java Basics - Anfänger-Themen 9
C Aufruf einer Funktion Java Basics - Anfänger-Themen 3
W Multiplikation mit rekursivem Aufruf Java Basics - Anfänger-Themen 17
C exec Aufruf mit Leerzeilen im Pfad Java Basics - Anfänger-Themen 3
L Methoden aufruf Java Basics - Anfänger-Themen 3
M methoden aufruf klappt nicht Java Basics - Anfänger-Themen 6
M Frage zum Aufruf eines Applets aus einer HTML - Datei Java Basics - Anfänger-Themen 3
N Methoden aufruf Java Basics - Anfänger-Themen 7
K Methoden aufruf von einer anderen Klasse Java Basics - Anfänger-Themen 7
S super() aufruf ausgabe Java Basics - Anfänger-Themen 3
L Mehrere Objekte einer Klasse aber nur einmal Konstruktor aufruf? Java Basics - Anfänger-Themen 2
M Probleme beim Aufruf von Listener in anderer Klasse Java Basics - Anfänger-Themen 9
F Aufruf von Methoden hintereinander gechachtelt??? Java Basics - Anfänger-Themen 8
E Mehrfache print ausgabe ohne Schleife oder Rekursiven aufruf? Java Basics - Anfänger-Themen 48
radiac CMD Windowskonsole und java aufruf in Vista 64 Java Basics - Anfänger-Themen 2
D Aufruf von WGET aus Java Java Basics - Anfänger-Themen 5
F Variabler Aufruf einer Methode Java Basics - Anfänger-Themen 10
F Methoden Aufruf Java Basics - Anfänger-Themen 4
L abgeleitete Klasse - Aufruf mit vererbter Klasse? Java Basics - Anfänger-Themen 2
T aufruf methode in methode macht probleme Java Basics - Anfänger-Themen 9
P seltsamer konsolen aufruf Java Basics - Anfänger-Themen 8
E Frage zum Objekt aufruf Java Basics - Anfänger-Themen 3
A Aufruf einer externen schon laufenden Anwendung Java Basics - Anfänger-Themen 3
C Aufruf eines Java Programms aus einem anderen Java Programm Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben