|
 |
|
20.06.2006, 14:48
|
#1
|
|
Registriert
Lord of the Board
Registrierungsdatum: Oct 2002
Ort: there
Beiträge: 1.891
|
Java findet den Constructor nicht
moin,
ich will jetzt mal "richtig" java programmieren lernen (mit packages aufteilung und so)..
habe erst grad angefangen und nun das problem, dass es den Konstruktor einer Klasse nicht findet..
Code der Hauptklasse ist folgender:
Code:
/**
* I'm learning java ;)
* Goal is to create some irc services with good and clean oo-code
* Author: Michael Weibel <mix@chat-net.ch>
*/
package org.JIRCServices;
import java.lang.*;
import org.JIRCServices.lib.IRCService;
import org.JIRCServices.lib.JIRCSConfig;
public class JIRCServices {
public static String myip;
public static int myport;
public static String server;
public static int port;
public static JIRCSConfig cfg = null;
public static void main(String[] args) {
try {
cfg = new JIRCSConfig("services.conf");
myip = cfg.get("myip", "127.0.0.1");
myport = Integer.parseInt(cfg.get("myport", "5667"));
server = cfg.get("server", "localhost");
port = Integer.parseInt(cfg.get("port", "5667"));
}
catch (ConfigException e) {
System.out.println(e.getMessage());
System.exit(1);
}
try {
IRCService irc = new IRCService(myip, myport, server ,port);
}
catch (IRCSocketException e) {
System.out.println(e.getMessage());
System.exit(1);
}
irc.connect();
}
}
und nun der einer zukünftigen konfigurationsklasse:
Code:
/**
* I'm learning java ;)
* Goal is to create some irc services with good and clean oo-code
* Author: Michael Weibel <mix@chat-net.ch>
*/
package org.JIRCServices.lib;
import java.lang.*;
public class JIRCSConfig {
public void JIRCSConfig(String filename) throws ConfigException {
System.out.println("foo");
}
public String get(String key, String defaultvalue) {
return "foo";
}
}
class ConfigException extends Exception {}
nun tritt der folgende fehler auf:
Code:
Compiliere F:\Externe HD\Programmieren\Java\org\JIRCServices\lib\JIRCSCo nfig.java mit Java-Compiler
F:\Externe HD\Programmieren\Java\org\JIRCServices\lib\JIRCSCo nfig.java erfolgreich compiliert!
Compiliere F:\Externe HD\Programmieren\Java\org\JIRCServices\JIRCService s.java mit Java-Compiler
JIRCServices.java:22: cannot resolve symbol
symbol : constructor JIRCSConfig (java.lang.String)
location: class org.JIRCServices.lib.JIRCSConfig
cfg = new JIRCSConfig("services.conf");
weiss jemand an was das liegt?
|
|
|
20.06.2006, 15:00
|
#2
|
|
Registriert
Postinator
Registrierungsdatum: Jun 2004
Ort: Amsterdam
Beiträge: 587
|
er findet keinen Konstrukter, weil du keinen definiert hast  !
Die Methode die du vermutlich als Konstruktor denkst ist die, nehme ich an:
Code:
public void JIRCSConfig(String filename) throws ConfigException {
System.out.println("foo");
}
Da ein Konstruktor aber nie einen Rückgabe Wert hat musst du das void rausnehmen!
Dann sollte es funktionieren.
Was für ein Editor verwendest du?
__________________
Keep on rockin'
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Being a father is just a job: no pay, long hours and in the end all you get is someone yelling: "you screwed me up!"© Homer Simpson
|
|
|
21.06.2006, 08:31
|
#3
|
|
Registriert
Lord of the Board
Registrierungsdatum: Oct 2002
Ort: there
Beiträge: 1.891
|
|
|
|
21.06.2006, 12:30
|
#4
|
|
Registriert
Lord of the Board
Registrierungsdatum: Oct 2002
Ort: there
Beiträge: 1.891
|
hehe, ja so gehts  thx
|
|
|
22.06.2006, 12:05
|
#5
|
|
Postinator
Registrierungsdatum: Jun 2002
Ort: SG
Beiträge: 577
|
__________________
Nichts auf der Welt is so gerecht verteilt wie der Verstand.
Denn jedermann ist davon überzeugt, dass er genug davon habe.
Nichts ist so dringend, als dass man es durch etwas Liegenlassen nicht noch dringender machen könnte!
"Wir sind in Sicherheit! Er kann uns nicht erreichen!"
"Sicher?"
"Ganz sicher! Bären haben Angst vor Treibsand!"
|
|
|
22.06.2006, 12:12
|
#6
|
|
Registriert
Postinator
Registrierungsdatum: Jun 2004
Ort: Amsterdam
Beiträge: 587
|
jepp, benutze auch eclipse....ist zwar einiges komplizierter, wenn man aber mal draus kommt ists ein super tool!
WSAD hingegen ist zum kotzen 
__________________
Keep on rockin'
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Being a father is just a job: no pay, long hours and in the end all you get is someone yelling: "you screwed me up!"© Homer Simpson
|
|
|
22.06.2006, 12:29
|
#7
|
|
Registriert
Lord of the Board
Registrierungsdatum: Oct 2002
Ort: there
Beiträge: 1.891
|
nee mag eclipse nich.. is mir zu aufgeblasen *g*
mag lieber was kleines, feines und schnelles 
und wenn ichs "richtig" lernen will, muss ich sowieso auf jegliche hilfestellungen verzichten 
das einzige was mich überzeugen könnte, ist, dass ich sowohl unter linux als auch unter windows das gleiche produkt gebrauchen könnte..
Geändert von mix (22.06.2006 um 12:31).
|
|
|
22.06.2006, 13:18
|
#8
|
|
Chief Administrator eidg. dipl. Minimalist
T-Papst
Registrierungsdatum: Oct 2001
Beiträge: 3.784
|
Zitat:
|
Zitat von mix
nee mag eclipse nich.. is mir zu aufgeblasen *g*
mag lieber was kleines, feines und schnelles 
|
So hab ich anfangs auch gedacht. Bei ziemlich allen programmiersprachen verwende ich bis heute simple editoren mit ein bisschen syntax highlighting (vim, editplus, etc.), ausser bei java.
eclipse ist unschlagbar, schnell (eigentlich verdammt schnell für eine java-applikation), mehr oder weniger übersichtlich, sehr komfortabel und überhaupt... take it or leave it! 
__________________
The beginning of wisdom is found in doubting; by doubting we come to the question, and by seeking we may come upon the truth.
Pierre Abelard
Wenn man mir zustimmt, habe ich immer das Gefühl, im Unrecht zu sein.
Oscar Wilde
Why don't you go hug yourself?
|
|
|
22.06.2006, 13:45
|
#9
|
|
Ruhestand
T-Schwerstabhängiger
Registrierungsdatum: Jan 1970
Ort: Schweiz
Beiträge: 7.064
|
Zitat:
|
Zitat von fmj
take it or leave it! 
|
Dasselbe kann man über Java sagen. Nur ohne die erste Möglichkeit.
__________________
Es gibt zwei Dinge, die einen Menschen daran hindern, seine Träume zu verwirklichen: der Glaube, sie seien ohnehin unerfüllbar, oder wenn diese durch eine unerwartete Drehung des Schicksalsgrades plötzlich doch erfüllbar werden.
Lebendes, gesellschaftlich angepasstes Individuum.
|
|
|
22.06.2006, 15:26
|
#10
|
|
Registriert
Lord of the Board
Registrierungsdatum: Oct 2002
Ort: there
Beiträge: 1.891
|
Zitat:
|
Zitat von canXun
Dasselbe kann man über Java sagen. Nur ohne die erste Möglichkeit.
|
Och nöö, nicht schon wieder ein Krieg der Programmiersprachen 
|
|
|
22.06.2006, 15:45
|
#11
|
|
Chief Administrator eidg. dipl. Minimalist
T-Papst
Registrierungsdatum: Oct 2001
Beiträge: 3.784
|
__________________
The beginning of wisdom is found in doubting; by doubting we come to the question, and by seeking we may come upon the truth.
Pierre Abelard
Wenn man mir zustimmt, habe ich immer das Gefühl, im Unrecht zu sein.
Oscar Wilde
Why don't you go hug yourself?
|
|
|
22.06.2006, 20:41
|
#12
|
|
Registriert
Lord of the Board
Registrierungsdatum: Oct 2002
Ort: there
Beiträge: 1.891
|
ok - ich hab jetzt Eclipse mal bisschen genauer angeschaut.. ihr habt mich überzeugt
Nur jetzt wirft mir Eclipse folgende Warnung (mehrere von denen) entgegen:
Zitat:
The serializable class ConfigException does not declare a static final serialVersionUID field of type long
|
ist die Exception Klasse serializable?
Und der QuickFix schlägt mir vor eine generierte UID zu machen - ist das für was?
code:
Code:
class ConfigException extends JIRCSException {
ConfigException(String message) {
super(message);
}
}
any ideas?
was genau ist die serialVersionUID?
Geändert von mix (22.06.2006 um 21:00).
|
|
|
26.06.2006, 09:38
|
#13
|
|
Registriert
Postinator
Registrierungsdatum: Jun 2004
Ort: Amsterdam
Beiträge: 587
|
ok, das ist ein bisschen kompliziert gleich am anfang
Serialisierbare klassen müssen immer eine solche Serial Version UID haben, damit diese immer wieder erkennt werden können. Wenn du ein Objekt nämlich serialisierst, wird es ja persistent gemacht, bzw du könntest es nachher in eine DB abspeichern und bei einem späteren Programm aufruf wieder verwenden. Dann muss Java sicher gehen, dass es sich auch wirklich um diese Klasse handelt. UID's werden auch verwendet, wenn Objekte zwischen Server und Client hin und her geschickt werden. Ist sozusagen die Check Summe von Java
Vermutlich implementiert oder erweitert deine Superklasse irgendein Serializable Interface oder Klasse.
du hast jetzt 2 möglichkeiten:
- Entweder lässt du das mit dem Serialisieren
oder
- du generierst eine UID mit dem folgenden Code:
Code:
public static void main(String[] args) {
Class aClass;
try {
aClass = Class.forName(args[0]);
}
catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
long l = ObjectStreamClass.lookup(aClass).getSerialVersionUID();
System.out.println("static final long serialVersionUID = "+l+"L;");
}
Als parameter musst du ein String array mitgeben, der den Klassen Namen mit Package mit gibt (z.B. dies.ist.dasPackage.PlusKlasse). Diesen Code musst du als eigene Main konfigurieren bzw. als eigenes Programm aufrufen und deine anderen Klassen (von denen du die UID generieren willst) einfach in den Classpath hinzufügen.
__________________
Keep on rockin'
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Being a father is just a job: no pay, long hours and in the end all you get is someone yelling: "you screwed me up!"© Homer Simpson
|
|
|
27.06.2006, 08:31
|
#14
|
|
Registriert
Lord of the Board
Registrierungsdatum: Oct 2002
Ort: there
Beiträge: 1.891
|
Mh, danke für die Antwort  Exceptions sind serialisiert?
|
|
|
27.06.2006, 09:52
|
#15
|
|
Registriert
Postinator
Registrierungsdatum: Jun 2004
Ort: Amsterdam
Beiträge: 587
|
nein, aber sie sind serialisierbar...  d.h. sie sinds noch nicht, aber man könnte...deshalb ist wohl eine UID nötig...
JAVA war noch nie logisch...just accept the rules 
__________________
Keep on rockin'
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Being a father is just a job: no pay, long hours and in the end all you get is someone yelling: "you screwed me up!"© Homer Simpson
|
|
|
 |
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten
Es ist Ihnen nicht erlaubt, Anhänge anzufügen
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten
HTML Code ist Aus
|
|
|
Alle Zeitangaben in GMT +2. Es ist jetzt 13:35 Uhr.
|