Почему мои основные классы не регистрируются в netbeans java? [Дубликат]

Когда вы объявляете ссылочную переменную (т. е. объект), вы действительно создаете указатель на объект. Рассмотрим следующий код, в котором вы объявляете переменную примитивного типа int:

int x;
x = 10;

В этом примере переменная x является int, и Java инициализирует ее для 0. Когда вы назначаете его 10 во второй строке, ваше значение 10 записывается в ячейку памяти, на которую указывает x.

Но когда вы пытаетесь объявить ссылочный тип, произойдет что-то другое. Возьмите следующий код:

Integer num;
num = new Integer(10);

Первая строка объявляет переменную с именем num, но она не содержит примитивного значения. Вместо этого он содержит указатель (потому что тип Integer является ссылочным типом). Поскольку вы еще не указали, что указать на Java, он устанавливает значение null, что означает «Я ничего не указываю».

Во второй строке ключевое слово new используется для создания экземпляра (или создания ) объекту типа Integer и переменной указателя num присваивается этот объект. Теперь вы можете ссылаться на объект, используя оператор разыменования . (точка).

Exception, о котором вы просили, возникает, когда вы объявляете переменную, но не создавали объект. Если вы попытаетесь разыменовать num. Перед созданием объекта вы получите NullPointerException. В самых тривиальных случаях компилятор поймает проблему и сообщит вам, что «num не может быть инициализирован», но иногда вы пишете код, который непосредственно не создает объект.

Например, вы можете имеют следующий метод:

public void doSomething(SomeObject obj) {
   //do something to obj
}

В этом случае вы не создаете объект obj, скорее предполагая, что он был создан до вызова метода doSomething. К сожалению, этот метод можно вызвать следующим образом:

doSomething(null);

В этом случае obj имеет значение null. Если метод предназначен для того, чтобы что-то сделать для переданного объекта, целесообразно бросить NullPointerException, потому что это ошибка программиста, и программисту понадобится эта информация для целей отладки.

Альтернативно, там могут быть случаи, когда цель метода заключается не только в том, чтобы работать с переданным в объекте, и поэтому нулевой параметр может быть приемлемым. В этом случае вам нужно будет проверить нулевой параметр и вести себя по-другому. Вы также должны объяснить это в документации. Например, doSomething может быть записано как:

/**
  * @param obj An optional foo for ____. May be null, in which case 
  *  the result will be ____.
  */
public void doSomething(SomeObject obj) {
    if(obj != null) {
       //do something
    } else {
       //do something else
    }
}

Наконец, Как определить исключение & amp; причина использования Трассировки стека

20
задан Luis Ramos 16 December 2013 в 02:49
поделиться

14 ответов

  1. Щелкните правой кнопкой мыши на вашем проекте в проекте explorer
  2. Нажмите на свойства
  3. Нажмите Run
  4. Убедитесь, что ваш основной класс является тем, вы хотите быть точкой входа. (Обязательно используйте полное имя, то есть mypackage.MyClass)
  5. Нажмите OK.
  6. Запустить проект:)

Если вы просто хотите для запуска файла щелкните правой кнопкой мыши на классе из проводника пакетов и нажмите «Запустить файл» или (Alt + R, F) или (Shift + F6)

24
ответ дан Paul Samsotha 18 August 2018 в 19:10
поделиться
  • 1
    У меня тоже такая же проблема, и я следил за твоими шагами. Но проблема все еще сохраняется. Я могу запустить проект в своей системе, но когда я копирую эту папку dist на другой компьютер и пытаюсь выполнить, я получаю эту ошибку. В чем может быть проблема? – Pawan 12 February 2016 в 07:21
  • 2
    Сегодня у меня была такая же проблема. Я закончил закрытие и возобновление моего проекта, а затем нашел основной метод. НТН. – JavaJeff 29 August 2017 в 15:25

В свойствах проекта на вкладке run укажите свой основной класс. Кроме того, Чтобы избежать этой проблемы, вам нужно проверить «Создать основной класс» во время создания нового проекта. Задание основного класса в свойствах всегда должно работать, но если в каком-то редком случае это не сработает, тогда проблема может быть решена путем повторного создания проекта и не забудьте проверить «Создать основной класс», если он не установлен.

2
ответ дан Asmat Ali 18 August 2018 в 19:10
поделиться

Вам нужно добавить }} в конец вашего кода.

0
ответ дан cmd 18 August 2018 в 19:10
поделиться

Если совет по добавлению закрывающих фигурных скобок работает, я предлагаю добавить отступ в ваш код, чтобы каждая закрывающая скобка находилась на раздельном расстоянии, то есть:

public class LuisRp3 {

    public static void main(String[] args) throws FileNotFoundException  {

    // stuff

    }
}

Это просто помогает с удобочитаемостью.

Если, с другой стороны, вы просто забыли скопировать закрывающие фигурные скобки в свой код, или приведенное выше предложение не работает: откройте конфигурацию и посмотрите, можно ли вручную установить основной класс. Боюсь, что я не использовал NetBeans много, поэтому я не могу помочь вам, где этот вариант. Моя лучшая догадка находится в разделе «Конфигурация запуска» или что-то в этом роде.

Изменить: см. Ответ peeskillet , если добавление закрывающих фигурных скобок не работает.

1
ответ дан Community 18 August 2018 в 19:10
поделиться

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

Неважно, сколько файлов в виде пакетов и классов вы создаете, вы должны назвать свой основной класс Main.

Вот и все.

0
ответ дан Delosdos 18 August 2018 в 19:10
поделиться

В этой ситуации может быть несколько ошибок (предполагая, что у вас был код после вашего примера, и он не просто оставил ваш код без изменений).

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

В противном случае я видел одноклассников с их кодом, но это было нормально, но у них все еще была такая же проблема. Иногда, в Netbeans, простое исправление:

  1. Скопируйте текущий код (или запишите его в другом месте)
  2. Удалите текущий файл
  3. Создайте новый основной класс в своем проекте (его можно назвать старым)
  4. Вставьте свой код обратно в

Если это не работает, попробуйте очистить кеш Netbeans, а если все остальное не удастся, просто выполните чистую установку и переустановку Netbeans.

1
ответ дан EpicDavi 18 August 2018 в 19:10
поделиться

При создании нового проекта - приложения Maven - Java в Netbeans среда IDE не распознает основной класс в записи первого класса. (на шаге 8 ниже мы не видим классов).

Когда сначала создается общий класс, а затем создается класс Main Netbeans регистрирует основной класс, и приложение может быть запущено и отлажено.

Шаги, которые сработали для меня:

  1. Создать новый проект - приложение Maven - Java (проект создан: mytest ; : com.me.test )
  2. Пакет правой кнопки мыши: com.me.test
  3. Новый> Класс Java>
  4. com.me.test
  5. Новый> Основной класс Java> назвал его: '
  6. Щелкните правой кнопкой мыши: ] Основной '(должен быть « Основной »)
  7. Щелкните правой кнопкой мыши по проекту mytest
  8. Нажмите «Свойства»
  9. Нажмите «Выполнить»> рядом с текстовым полем «Основной класс»:> Обзор
  10. Вы должны увидеть: com.me.test.Main
  11. Выберите его и нажмите «Выбрать главный класс»

Надеюсь, что это работает и для других.

2
ответ дан Felix 18 August 2018 в 19:10
поделиться

Нажмите молоток слева от зеленой стрелки (пробег), чтобы программа очистила & amp; построить проект. Нажмите зеленую стрелку. Выберите Основной класс.

Надеюсь, что он работает для u.

-1
ответ дан Hernando Nieto 18 August 2018 в 19:10
поделиться

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

public static void main (String [] args)

-2
ответ дан Hilary Brobbey 18 August 2018 в 19:10
поделиться

У меня была та же проблема в Eclipse, поэтому, возможно, что я сделал, чтобы решить проблему, это может вам помочь. В свойствах проекта мне пришлось установить конфигурацию запуска в файл, содержащий основной метод (я не знаю, почему он не был настроен на правый файл автоматически).

2
ответ дан Stefan 18 August 2018 в 19:10
поделиться

Кроме того, для других существует несколько другая проблема, когда Netbeans не найдет класс, когда вы хотите, когда вы просматриваете его из «диалогового окна основных классов».

Возможно, ваш основной метод имеет правильную подпись. В моем случае я забыл аргументы.

example: public static void main (String [] args)

Модификаторы public и static могут быть записаны в любом порядке (public static или static общедоступный), но конвенция заключается в использовании открытого статического элемента, как показано выше.

Args: вы можете назвать аргумент чем угодно, но большинство программистов выбирают «args» или «argv».

Подробнее здесь: http: // docs. oracle.com/javase/tutorial/getStarted/application/

7
ответ дан TriMix 18 August 2018 в 19:10
поделиться

В панели инструментов поиска нажмите стрелку и выберите «Настроить ...» Он откроет свойства проекта. В категориях выберите «RUN». Ищите главный класс. Очистите все символы главного класса и введите имя своего класса. Нажмите «ОК». И снова бегите. Проблема решена.

0
ответ дан user 18 August 2018 в 19:10
поделиться
import java.util.Scanner;
public class FarenheitToCelsius{
    public static void main(String[]args){
     Scanner input= new Scanner(System.in);
     System.out.println("Enter Degree in Farenheit:");
     double Farenheit=input.nextDouble();
     //convert farenheit to celsius
     double celsuis=(5.0/9)*(farenheit 32);
     system.out.println("Farenheit"+farenheit+"is"+celsius+"in celsius")
             {
0
ответ дан yaw sefa anane 18 August 2018 в 19:10
поделиться

, если все это ваш код, который вы забыли закрыть основным методом

, все остальное звучит хорошо для меня

public class LuisRp3 {

public static void main(String[] args) throws FileNotFoundException  {

    java.io.File newFile = new java.io.File("LuisRamosp4.txt");

    if (newFile.exists()) {
        newFile.delete();
    }

    System.setOut(new PrintStream(newFile));

    Guitar guitar = new Guitar(); 
}}

попробуйте

1
ответ дан Yehia Awad 18 August 2018 в 19:10
поделиться
  • 1
    Это не весь код. Я просто размещаю его немного, потому что это назначение класса. Однако, спасибо. – Luis Ramos 16 December 2013 в 02:55
  • 2
    вы все еще имеете ту же ошибку – Yehia Awad 16 December 2013 в 02:56
  • 3
    Я работаю над & quot; try / catch & quot; это было предложено. Спасибо. – Luis Ramos 16 December 2013 в 03:16
Другие вопросы по тегам:

Похожие вопросы: