Bitte um Hilfe bei Fehlersuche ;-)

  • Der Compiler gibt mir für Zeile 25 folgenden Fehler aus:

    Code
    pussy/LoadDictionarys.java [25:1] cannot resolve symbol
    symbol  : method listFiles (pussy.FilenameFilter)
    location: class java.io.File
    		File[] contents = myDir.listFiles(select);
    							   ^
    1 error
    Errors compiling LoadDictionarys.



    Das dumme ist nur: Ich komme einfach nicht drauf wo genau der Fehler liegt. ;) Mir erscheint in meinem Code so weit alles logisch.

    Vielleicht könnte mal einer von euch einen kleinen Blick auf den Code werfen:

  • Zitat von MacOS X
    Code
    File myDir = new File("C:/Dokumente und Einstellungen/Eigene Dateien/Devel/pussy/pussy/");


    Hmmm .. macht's nen Unterschied, wenn man einen Backslash statt eines Slash benutzt?

    Btw, wie kommt man auf einen Namen wie "Pussy" für eine Software ;)?

    Einmal editiert, zuletzt von JohnFoo (29. März 2010 um 14:52)

  • Zitat von JohnFoo

    Hmmm .. macht's nen Unterschied, wenn man einen Backslash statt eines Slash benutzt?

    Ja :D So wie ich es habe passt es aber ...

    Zitat


    Btw, wie kommt man auf einen Namen wie "Pussy" für eine Software ;)?


    Das ist gar nicht so leicht zu erklären: ;)
    Apple nimmt ja Raubkatzen als Codenamen (Jaguar, Panther, Tiger, ...). Da hab ich mir gedacht - hey, dann nehm ich auch mal eine Katze als Codename für mein nächstes Projekt. ;P

    Naja, nichts desto trotz - das Problem ist leider noch immer nicht gelöst. :shinner:

  • die fehlermeldung beschreibt das problem eh recht genau:

    du versucht der methode listFiles(java.io.FilenameFilter) als Parameter einen pussy.FilenameFilter zu übergeben, und das ist nicht erlaubt.

    wenn du eine klasse nicht mit ihrem vollständigen pfad angibst, dann wird zunächst das eigene package durchsucht und _erst dann_ die importierten packages.

    wenn du in deinem code entweder die deklaration von FileListFilter so umänderst:

    Code
    class FileListFilter implements java.io.FilenameFilter

    oder einfach das interface pussy.FilenameFilter löschst, sollte der fehler nicht mehr auftreten.

  • Zitat von a9bejo

    die fehlermeldung beschreibt das problem eh recht genau:


    Danke für die Hilfe, aber gelöst ist das Problem noch nicht.

    Wenn ich das eine Interface lösche ändert sich absolut gar nichts. Der Fehler bleibt genau so bestehen.

    Wenn ich deinen anderen Vorschlag durchführe bleibt auch der alte Fehler bestehen + es kommt ein neuer als Bonus dazu ;) :



    Sonst noch irgendwelche Vorschläge?

  • Also irgendwo verstehen wir uns falsch, denn bei mir lässt sich der Code mit meinen Vorschlägen compilieren und ausführen.

    also so sieht der code aus, den ich gerade getestet habe:

    file: LoadDictionarys.java


    file: FileListFilter

    file: test.java

    Code
    package pussy;
    public class Test {
        public static void main(String[] args) {
            new LoadDictionarys();
        }
    }
  • unbedingt die version von java vergleichen
    da gibts mittlerweile wirklich dinge die sich mit der neuen version nich kompilieren lassen (1.4.2) von der 1.5er nicht zu reden

    bsp: in der Klasse String gabs vor der version 1.4.2 eine funktion um einen String im String zu suchen, wenn man die funktion jetzt benutzt "motzt" der compiler, weil sie den übergabeparameter von String auf Expression geändert haben ;(

  • Zitat von wolk

    unbedingt die version von java vergleichen
    da gibts mittlerweile wirklich dinge die sich mit der neuen version nich kompilieren lassen (1.4.2) von der 1.5er nicht zu reden

    bsp: in der Klasse String gabs vor der version 1.4.2 eine funktion um einen String im String zu suchen, wenn man die funktion jetzt benutzt "motzt" der compiler, weil sie den übergabeparameter von String auf Expression geändert haben ;(


    Welche funktion ist das denn?

    Ich finde keine methode weder in 1.3 noch in 1.4.2, auf die deine beschreibung zutrifft.

  • ich glaub das war replaceAll(regex,string)

    bei eprog (1.4.1) war das noch (string,string) und jetzt ist aus dem einen string eine regular expressiongeworden -> funktioniert altes prog. nicht mehr mit 1.4.2

  • Zitat von wolk

    ich glaub das war replaceAll(regex,string)

    bei eprog (1.4.1) war das noch (string,string) und jetzt ist aus dem einen string eine regular expressiongeworden -> funktioniert altes prog. nicht mehr mit 1.4.2

    Also es war jetzt gar nicht so einfach, eine 1.4.1 doku aufzutreiben. ;)

    Hab jetzt aber doch eine gefunden und da steht:

    Code
    String 	replaceAll(String regex, String replacement)
              Replaces each substring of this string that matches the given regular expression with the given replacement.

    und in 1.4.2:

    Code
    String replaceAll(String regex, String replacement)
              Replaces each substring of this string that matches the given regular expression with the given replacement.

    vielleicht arbeitet man in eprog mit einer beta version? :)

  • es ist merkwürdig, bei mir funktioniert x.replaceAll("s",".") ohne probleme, aber ich hab vor 2 wochen auf einem PC selbiges zu kompilieren versucht, und da gabs die fehlermeldung dass der parameter keine regular expression ist ?????

  • Zitat von MacOS X

    Hmmm ... echt komisch. Ich habs jetzt exakt mit deinem Code probiert und es geht wieder nicht.

    Vielleicht hat ja meine Javainstallation was. Ich werd dem mal nachgehen.

    Thx auf jeden Fall :thumb: .

    mac

    Versuche mal eine Installation in ein Directory ohne Leerzeichen. Ich habe in deinem Code irgendeinen Pfad mit "Dokumente und Einstellungen" gesehen...

    lg
    Sys

    Any sufficiently advanced technology is indistinguishable from magic.
    Arthur C. Clarke

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!