метод должен вызвать ошибку super () в Netbeans - PullRequest
11 голосов
/ 03 июля 2011

Недавно я создал проект Netbeans и вместе с ним использую SVN.Я вижу повторяющуюся ошибку класса, и в консоли она говорит

java.lang.VerifyError: (class: pie/chart/explorer/PieChartExplorer, method: <init> signature: ()V) Constructor must call super() or this()<br> Could not find the main class: pie.chart.explorer.PieChartExplorer. Program will exit.<br> Exception in thread "main" Java Result: 1

Вот PieChartExplorer.java:

package pie.chart.explorer;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class PieChartExplorer extends JFrame implements ActionListener {


    JTextField one = new JTextField(10);
     JTextField two = new JTextField(10);
      JTextField three = new JTextField(10);
    JButton sub = new JButton("Click to be amazed");


    public PieChartExplorer() {
        super("Pie Chart Explorer");
        setSize(300,100);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        FlowLayout flo = new FlowLayout();
        setLayout(flo);
        setVisible(true);
        add(one);
        add(two);
        add(three);
        sub.addActionListener(this);;
        add(sub);

    }

    public static void main(String[] args) {
        PieChartExplorer app = new PieChartExplorer();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();

        if(source == sub) {
            try {
            Pie show = new Pie(Float.parseFloat(one.getText()),Float.parseFloat(two.getText()),Float.parseFloat(three.getText()));
            } catch(Exception ex) {
                JOptionPane.showMessageDialog(this, "Please check entered data");

            }
        }
    }

}

Я пытался:

  1. Очистить и восстановить проект
  2. Убедившись, что я вызвал super во всех конструкторах

Как это можно исправить? Код для скачивания .

Ответы [ 5 ]

12 голосов
/ 18 декабря 2011

Я обнаружил, что переименование пакета не работает, старый пакет все еще там.

Проблема для меня началась, когда я скопировал пакет из другого приложения в текущее приложение, в котором уже был пакет содно и то же имяЯ пытался добавить некоторые недостающие классы в пакет.После того, как я это сделал, началась ошибка.

Чтобы устранить ее, я удалил весь пакет из целевого веб-приложения и выполнил очистку и сборку.Затем я скопировал исходный пакет в целевое приложение.Нет ошибок.

11 голосов
/ 03 июля 2011

Я видел эти симптомы только на днях.

Я получил файл, который редактировал, и решил, что хочу разделить свои изменения на 2 коммита.Я пошел в каталог, содержащий мой файл "x / y / Z.java", создал каталог в "x / y" с именем "backup", переместил туда "Z.java" и вытащил свежую копию из системы контроля версий. Обратите внимание, что все это было сделано за пределами IDE.

Вернувшись в IDE, я объединил изменения для первого коммита, и когда я собрал, я получил сообщение о дублировании класса для "Z.java".Msgstr ".

Когда я скопировал источник в" резервную копию ", я сделал это вне IDE, и он все еще имел оригинальный пакет" xy ", как и мой недавно отредактированный" Z.java ".NB не будет компилировать новый "Z.java", потому что он мог видеть, что он уже создал "xyZclass" (из "x / y / backup / Z.java").

Есть 2 способа исправить это:

  1. Переименуйте «x / y / backup / Z.java» в «x / y / backup / Z.java.backup».(Не допускайте компиляции резервной копии.)
  2. Измените пакет в «x / y / backup / Z.java» с «xy» на «xybackup».(Сделайте резервную копию, создайте другой файл класса.)

После внесения любого из этих изменений выполните «очистку и сборку». Примечание: простое построение не решит проблему, вам нужно выполнить очистку для удаления файла мошеннического класса.

Примечание: # 1 было сделано путем переименования Z.java из командной строки, а не в NB.NB не позволит вам изменить расширение файла.

2 голосов
/ 09 июня 2014

Уборка и строительство решают проблему

1 голос
/ 07 июня 2012

Если проблема не устранена, я решил ее следующим образом.

В моем случае я изменил класс с помощью метода main позже, и исходный класс все еще упоминался в файле пропорций.

Измени эту настройку, очисти и собери .. У меня это сработало ...

0 голосов
/ 24 сентября 2015

В моем случае у меня была такая же проблема в веб-приложении после создания внешней копии POJO и ручного редактирования ее вне NETBEANS. Проблема была в том, что другие предлагали в других ответах о конфликте в уже скомпилированных .class файлах.

Чтобы преодолеть это, я просто удалил папку webAppname/WEB-INF/classes (где находятся скомпилированные классы), а затем сделал Clean and Build

Надеюсь, это кому-нибудь поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...