Исключение NetBeans в потоке "main" java.lang.NoClassDefFoundError - PullRequest
0 голосов
/ 25 января 2019

У меня есть два класса в одном и том же Java-файле. Класс B_BurglerAndMatches - это имя имени файла Java. Другой класс - Con. Мне действительно нужны оба класса в одном файле, так как это онлайн-заявка. Была эта ошибка несколько раз, и мое решение было попытаться объединить в один класс. Однако я уверен, что есть способ

package CF_B;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

class Con implements Comparable<Con>{
int box;
int mat;

Con(int box, int mat) {
    this.box = box;
    this.mat = mat;
}
int matches(){
    return box*mat;
}

@Override
public int compareTo(Con o) {
    return this.matches()-o.matches();
}

}
public class B_BurglerAndMatches {
    public static void main(String [] args){
        Scanner in = new Scanner(System.in);
        int space = in.nextInt();
        int numC = in.nextInt();

        ArrayList<Con> conts = new ArrayList();
        for (int i = 0; i < numC; i++) {
            Con c = new Con(in.nextInt(),in.nextInt()); // <--- error points here
            conts.add(c);
        }

    Collections.sort(conts);

    int i = conts.size()-1;
    int matches = 0;
    int temp = 0;
    int Left_boxes = 0;
    while (space > 0 && i>=0) {
            temp = space - conts.get(i).box; //no of boxes with no space
//            System.out.println("i "+i);
//            System.out.println("temp " + temp);
            if (temp < 0) {
                Left_boxes = conts.get(i).box + temp; //no of boxes to calculate
                matches = matches + (Left_boxes * conts.get(i).mat);
            } else {
                matches = matches + conts.get(i).matches();
            }
//            System.out.println("matches "+matches);
            space = space - conts.get(i).box;
            i--;
        }

    System.out.println(matches);
}
}

Ошибка, которая появилась в консоли:

Exception in thread "main" java.lang.NoClassDefFoundError: CF_B/Con
at CF_B.B_BurglerAndMatches.main(B_BurglerAndMatches.java:44)
Caused by: java.lang.ClassNotFoundException: CF_B.Con
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more
Java Result: 1

Пробовал искать во многих других сообщениях об этом виде ошибки, но не нашел ни одного, соответствующего моему случаю. Любое объяснение будет высоко ценится

если вы хотите попробовать мой код, это ввод:

7 3
5 10
2 5
3 6

1 Ответ

0 голосов
/ 25 января 2019

Я подозреваю, что это связано с тем, что CON - это специальный файл в Windows. Попробуйте переименовать ваш класс.

...