2016-07-21 16 views
-2

ich folgende Fehler habe, wenn ich mein Parser-Programm ausführen,Befestigen Sie den Array-Typen und Verfahren Fehler in meinen Java-Klassen, wirklich verloren, wie der Fehler zu beheben

Error: Main method not found in class TfIdfMain, please define the main method as: 
    public static void main(String[] args) 
or a JavaFX application class must extend javafx.application.Application 

Auch in meinem Haupt-Verfahren gibt es ein wie dieser Fehler, aber ich erstellt bereits die parserfile Fehler in Parser-Klasse,

Multiple markers at this line 
    - Default constructor cannot handle exception type IOException thrown by implicit super constructor. Must define an explicit 
    constructor 
    - Default constructor cannot handle exception type FileNotFoundException thrown by implicit super constructor. Must define an 
    explicit constructor 

auch in meiner Parser-Klasse gibt es einen Fehler rund um die Array-Liste Linie, heißt es Array nicht aufgelöst werden kann, wie soll ich das beheben Dies? Erstellen Sie eine neue Variable.

Hier sind meine zwei Hauptklassen, die Fehler beteiligt: ​​

import java.io.FileNotFoundException; 
import java.io.IOException; 
public class TfIdfMain { 

    } 
    // public static void main(String args[]) throws FileNotFoundException, IOException { 
    //  DocumentParser dp = new DocumentParser(); 
    //  dp.parseFiles("C:\\Users\\Sarah\\Documents"); 
    //  dp.getCosineMatrix(); 
    // } 
    } 
} 

Mein Dokument Parser-Klasse:

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileNotFoundException; 

public class DocumentParser { 

    private void doSomething(){ 
      String text = "Professor, engineering, data, mining, research"; 
      StringTokenizer str = new StringTokenizer(text); 
      String word[] = new String[10]; 
      String unique[] = new String[10]; 
      String x; 
      int count = -1; 
      while (str.hasMoreTokens()) { 
       count++; 
       x = str.nextToken(); 

      if (f.getName().endsWith(".txt")) { 
       in = new BufferedReader(new FileReader(f)); 
       StringBuilder sb = new StringBuilder(); 
       String s = null; 
       while ((s = in.readLine()) != null) { 
        sb.append(s); 
       } 
       String[] tokenizedTerms = sb.toString().replaceAll("[\\W&&[^\\s]]", "").split("\\W+"); //to get individual terms 
       for (String term : tokenizedTerms) { 
        if (!allTerms.contains(term)) { 
         allTerms.add(term); 
        } 
       } 
       termsDocsArray.add(tokenizedTerms); 
      } 
     } 

    } 

    public void tfIdfCalculator() { 
     double tf; 
     double idf; 
     double tfidf;  
     for (String[] docTermsArray : termsDocsArray) { 
      double[] tfidfvectors = new double[allTerms.size()]; 
      int count = 0; 
      for (String terms : allTerms) { 
       tf = new TfIdf().getTf(docTermsArray, terms); 
       idf = new TfIdf().idfCalculation(termsDocsArray, terms); 
       tfidf = tf * idf; 
       tfidfvectors[count] = tfidf; 
       count++; 
      } 
      tfidfDocsVector.add(tfidfvectors);  
     } 
    } 
    public void getCosineMatrix() { 
     for (int i = 0; i < tfidfDocsVector.size(); i++) { 
      for (int j = 0; j < tfidfDocsVector.size(); j++) { 
       System.out.println("between " + i + " and " + j + " = " 
            + new CosineSimilarity().getCosine 
             (
             tfidfDocsVector.get(i), 
             tfidfDocsVector.get(j) 
             ) 
           ); 
      } 
     } 
    } 
} 

Antwort

1

lesen Sie Ihre Fehlermeldung und dann Ihren Code überprüfen:

Error: Main method not found in class TfIdfMain, please define the main method as: public static void main(String[] args)

, was das Problem sein könnte? Die Hauptmethode wurde nicht gefunden. In deinem Code ist es auskommentiert.

Und in Ihrer TfIdfMain -Klasse: mindestens Ihre For-Schleife muss in einer Methode/Konstruktor sein. Tun Sie etwas wie

public class TfIdfMain 
    public TfIdfMain(){ 
     for(String file : files) { 
      DocumentParser dp = new DocumentParser(); 
      dp.parseFiles(file); 
      dp.getCosineMatrix(); 
     } 
    } 
} 
+0

danke, ich habe dir eine E-Mail geschickt. Sie können jetzt Ihren E-Mail-Kommentar löschen. –

1

Ihre Hauptmethode ist auf Kommentar, das ist, warum es nicht durch die gefunden wird Compiler. Die for-Schleife befindet sich nicht innerhalb einer Methode und nur im Klassenkörper. Das ist falsch in Java. Die Fehlermeldungen vom Compiler sagen Ihnen genau, was zu tun ist, Sie müssen einen speziellen Konstruktor angeben, der die Ausnahmen behandeln kann.

+0

Vielen Dank! Ich arbeite seit Stunden an diesem Code! Da ich für eine weitere Stunde keine weitere Frage stellen kann, weiß ich nicht, ob du später dran bist. Ich arbeite hart daran, diesen Code zum Laufen zu bringen. Kann ich Ihnen eine E-Mail schicken? Meine E-Mail-Adresse ist firstjavapython auf gmail. Es handelt sich um ein temporäres Konto, sodass Sie sich keine Sorgen um die Privatsphäre machen müssen. Bitte überlege mir, hilf mir! Ich brauche wirklich deine Hilfe! –