【问题标题】:No Class Def Found error没有找到类定义错误
【发布时间】:2023-04-05 23:40:01
【问题描述】:

我在 NetBeans 中编写了以下类并成功运行。但是当我将它上传到我参加 IEEE Extreme 竞赛的 IEEE moshack 服务器时。

它说我的程序给出了运行时错误。你能告诉我为什么吗?

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);


    }
}

【问题讨论】:

  • 你能拼出像“u”这样的词吗?也许发布堆栈跟踪,以便我们知道找不到哪个类。当然,这是一个 CLASSPATH 问题。 NetBeans 让您对 CLASSPATH 的工作原理一无所知,这是一种耻辱。
  • Exception in thread "main" java.lang.NoClassDefFoundError: BloomFilter/class Caused by: java.lang.ClassNotFoundException: BloomFilter.class at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Could not find the main class: BloomFilter.class
  • 请编辑您的问题以包含该内容。

标签: java exception noclassdeffounderror


【解决方案1】:

例如,旧版本的 DomJudge 要求 Java 类命名为 Main;在这方面,较新的版本更好,但您上传的地方可能有类似的限制。

检查错误消息以获取 Java 预期的类名并尝试重命名您的类(当然还有文件)。

编辑:显然您尝试使用java BloomFilter.class 而不是java BloomFilter 运行它。不过,我怀疑这是提交系统的问题(通常会在较早时发现此类问题),所以也许有一个地方可以在某个地方发出命令运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    相关资源
    最近更新 更多