2011-10-22 4 views
0

J'ai écrit la classe suivante dans NetBeans et l'ai exécutée avec succès. Mais quand je l'ai téléchargé sur le serveur moshack IEEE où j'ai participé à la compétition IEEE Extreme.Aucune erreur de classe Def Def

Il est dit que mon programme donne une erreur d'exécution. Pouvez-vous me dire pourquoi?

import java.util.Scanner; 


public class BloomFilter { 

    public static void main(String[] args) { 


     Scanner sc = new Scanner(System.in); 

     int[] a = new int[26]; 
     for (int b : a) { 
      b = 0; 
     } 


     String s = sc.nextLine(); 
     String s1 = sc.nextLine(); 


     for (int i = 0; i < s.length(); i++) { 
      if (s.charAt(i) >= 65 && s.charAt(i) <= 90) { 

       int p = s.charAt(i) - 65; 

       a[p] = 1; 

      } 

      if ((s.charAt(i) >= 97 && s.charAt(i) <= 122)) { 

       int p = s.charAt(i) - 97; 

       a[p] = 1; 
      } 
     } 

     String[] tokens = s1.split("[^a-zA-Z]"); 
     int totWords = 0; 

     for (String s2 : tokens) { 
      s2.toLowerCase(); 
      totWords++; 
      for (int j = 0; j < s2.length(); j++) { 
       if (a[s2.charAt(j) - 97] == 0) { 
        totWords--; 
        break; 
       } 
      } 

     } 

     System.out.print(totWords); 


    } 
} 
+1

Pouvez-vous épeler des mots comme "u"? Et peut-être poster la trace de la pile afin que nous sachions quelle classe ne peut pas être trouvée. C'est un problème CLASSPATH, bien sûr. NetBeans vous laisse ignorer le fonctionnement de CLASSPATH, ce qui est dommage. – duffymo

+0

'Exception dans le thread "principal" java.lang.NoClassDefFoundError: filtre de bloom/classe Causée par: java.lang.ClassNotFoundException: BloomFilter.class à java.net.URLClassLoader 1.run $ (URLClassLoader.java:202) à java .security.AccessController.doPrivileged (Méthode native) at java.net.URLClassLoader.findClass (URLClassLoader.java:190) at java.lang.ClassLoader.loadClass (ClassLoader.java:307) à sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:301) at java.lang.ClassLoader.loadClass (ClassLoader.java:248) Impossible de trouver la classe principale: BloomFilter.class ' –

+0

Veuillez modifier votre question pour l'inclure. –

Répondre

2

versions plus anciennes de DomJudge par exemple exigé que les classes Java sont nommés Main; les versions plus récentes sont meilleures à cet égard, mais une restriction similaire est peut-être en place là où vous l'avez téléchargé.

Vérifiez le message d'erreur pour le nom de classe Java attendu et essayez de renommer votre classe (et le fichier, bien sûr).

EDIT: Apparemment, vous avez essayé de l'exécuter avec java BloomFilter.class au lieu de java BloomFilter. Je doute que ce soit un problème avec le système de soumission, cependant (de telles choses sont repérées plus tôt, généralement), alors peut-être qu'il y a un endroit où vous donnez la commande à exécuter.