Zurück   T-Board.ch > Computer, Technik & Games > Programmieren & Co.
Benutzername
Kennwort
Portal FAQ Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren


Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 20.06.2006, 14:48   #1
mix
Registriert
Lord of the Board
 
Benutzerbild von mix
 
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?
mix ist offline   Mit Zitat antworten
Alt 20.06.2006, 15:00   #2
Flyingdutchman
Registriert
Postinator
 
Benutzerbild von Flyingdutchman
 
Registrierungsdatum: Jun 2004
Ort: Amsterdam
Beiträge: 587
Flyingdutchman eine Nachricht über ICQ schicken
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
Flyingdutchman ist offline   Mit Zitat antworten
Alt 21.06.2006, 08:31   #3
mix
Registriert
Lord of the Board
 
Benutzerbild von mix
 
Registrierungsdatum: Oct 2002
Ort: there
Beiträge: 1.891
aaah *g* probiere ich dann mal aus zuhause
ähm Java-editor von http://www.bildung.hessen.de/aberei...java/editor.htm
mix ist offline   Mit Zitat antworten
Alt 21.06.2006, 12:30   #4
mix
Registriert
Lord of the Board
 
Benutzerbild von mix
 
Registrierungsdatum: Oct 2002
Ort: there
Beiträge: 1.891
hehe, ja so gehts thx
mix ist offline   Mit Zitat antworten
Alt 22.06.2006, 12:05   #5
AciDBurnZ
Moderator
Computer & Technik

Postinator
 
Benutzerbild von AciDBurnZ
 
Registrierungsdatum: Jun 2002
Ort: SG
Beiträge: 577
AciDBurnZ eine Nachricht über ICQ schicken AciDBurnZ eine Nachricht über AIM schicken AciDBurnZ eine Nachricht über Yahoo! schicken
guck dir mal eclipse an.

http://www.eclipse.org/
__________________
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!"
AciDBurnZ ist offline   Mit Zitat antworten
Alt 22.06.2006, 12:12   #6
Flyingdutchman
Registriert
Postinator
 
Benutzerbild von Flyingdutchman
 
Registrierungsdatum: Jun 2004
Ort: Amsterdam
Beiträge: 587
Flyingdutchman eine Nachricht über ICQ schicken
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
Flyingdutchman ist offline   Mit Zitat antworten
Alt 22.06.2006, 12:29   #7
mix
Registriert
Lord of the Board
 
Benutzerbild von mix
 
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).
mix ist offline   Mit Zitat antworten
Alt 22.06.2006, 13:18   #8
fmj
Chief Administrator
eidg. dipl. Minimalist
T-Papst
 
Benutzerbild von fmj
 
Registrierungsdatum: Oct 2001
Beiträge: 3.784
fmj eine Nachricht über ICQ schicken
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?
fmj ist offline   Mit Zitat antworten
Alt 22.06.2006, 13:45   #9
canXun
Ruhestand
T-Schwerstabhängiger
 
Benutzerbild von canXun
 
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.
canXun ist offline   Mit Zitat antworten
Alt 22.06.2006, 15:26   #10
mix
Registriert
Lord of the Board
 
Benutzerbild von mix
 
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
mix ist offline   Mit Zitat antworten
Alt 22.06.2006, 15:45   #11
fmj
Chief Administrator
eidg. dipl. Minimalist
T-Papst
 
Benutzerbild von fmj
 
Registrierungsdatum: Oct 2001
Beiträge: 3.784
fmj eine Nachricht über ICQ schicken
Zu diesem Thema:

Java...
Suicide Solution
__________________

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?
fmj ist offline   Mit Zitat antworten
Alt 22.06.2006, 20:41   #12
mix
Registriert
Lord of the Board
 
Benutzerbild von mix
 
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).
mix ist offline   Mit Zitat antworten
Alt 26.06.2006, 09:38   #13
Flyingdutchman
Registriert
Postinator
 
Benutzerbild von Flyingdutchman
 
Registrierungsdatum: Jun 2004
Ort: Amsterdam
Beiträge: 587
Flyingdutchman eine Nachricht über ICQ schicken
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
Flyingdutchman ist offline   Mit Zitat antworten
Alt 27.06.2006, 08:31   #14
mix
Registriert
Lord of the Board
 
Benutzerbild von mix
 
Registrierungsdatum: Oct 2002
Ort: there
Beiträge: 1.891
Mh, danke für die Antwort Exceptions sind serialisiert?
mix ist offline   Mit Zitat antworten
Alt 27.06.2006, 09:52   #15
Flyingdutchman
Registriert
Postinator
 
Benutzerbild von Flyingdutchman
 
Registrierungsdatum: Jun 2004
Ort: Amsterdam
Beiträge: 587
Flyingdutchman eine Nachricht über ICQ schicken
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
Flyingdutchman ist offline   Mit Zitat antworten
Antwort


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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

vB Code ist An
Smileys sind An
[IMG] Code ist An
HTML Code ist Aus
Gehe zu

Ähnliche Themen
Thema Erstellt von Forum Antworten Letzter Beitrag
Java: Callbacks? mix Programmieren & Co. 10 14.11.2005 22:54
Java Virtual Machine patriot Betriebssysteme und Programme 11 15.10.2003 07:52
Microsoft muss Java nicht integrieren Zentinel News 0 27.06.2003 08:59
Webmaster Guide Zentinel Internet, Intranet, Kommunikation und Webdesign 2 18.01.2001 15:51
woher bekomme ich "java scripts" Gogo Internet, Intranet, Kommunikation und Webdesign 5 27.12.2000 23:57


Alle Zeitangaben in GMT +2. Es ist jetzt 13:35 Uhr.


Powered by: vBulletin Version 3.0.1 T-Modifications (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Design & Content: ©2000-2004 by the T-Board Team
Powered by ♔ koeniglich.ch