Пытаюсь исправить программу, но даже не могу запустить ее

#java #class #netbeans #main

#java #класс #netbeans #program-entry-point

Вопрос:

Я использую Netbeans и пытаюсь запустить программу «Rational», чтобы я мог видеть, что нужно исправить. Однако, когда я пытаюсь ее запустить, я получаю ошибку «Rational.Основной класс не найден в Rational project «. Я попытался переименовать несколько аспектов программы, чтобы она могла видеть основной класс (он там есть, уверяю вас), но он по-прежнему выдает эту ошибку. Я видел это раньше, но это единственный раз, когда, казалось, это не исправилось вовремя.

Редактировать: Это более проблематично, чем я думал, вот обновленный код. Да, это очень неправильно.

  package Rational;

  public class Rational {
        int x, y;



       public Rational () {
        this.x = 0;
        this.y = 0;
    }

    public static void printRational (Rational x) {
        System.out.println (x);
    }
    public Rational (int x, int y) {
        this.x = x;
        this.y = y;
    }
    public static void negate (int x) {
        x = -x;
        System.out.println (x);
    }
    public static void invert (int x, int y) {
        int g = x;
        x = y;
        y = g;
        System.out.print (x);
        System.out.print ("/");
        System.out.println (y);
    }
    public static void toDouble (int x, int y) {
        double f = x/y;
        System.out.println (f);
    }
    public static int GCD(int a, int b)
{
   if (b==0) return a;
   return GCD(b,a%b);
}
    public static void reduce (int x, int y) {
        x = x/(GCD (x,y));
        y = y/(GCD (x,y));
        System.out.print (x);
        System.out.print ("/");
        System.out.println (y);
    }
    public static void add (int x, int y) {
        double z = x y;
        System.out.println (z);
    }






public static void main(String args[]) {
     Rational g = new Rational ();{
g.x = 1;
g.y = 2;
System.out.println ("vgds");
//Rational.printRational (g);

      }
}
}
  

Обновленный снимок экрана:

http://i.stack.imgur.com/SX55P.png

Комментарии:

1. Есть ли у вас public class Main в Main.java ?

2. Можете ли вы опубликовать исходный код, содержащий ваш Rational.Main класс? (Вы можете редактировать все, что угодно, кроме заголовков класса и основного метода)

3. Вы скомпилировали проект перед запуском? Поскольку основной класс, похоже, существует, возможно, просто отсутствует файл .class (или его нет в classpath).

4. Бала: Я не знаю, но я не уверен, к чему это приведет. Джен: Я опубликую это через мгновение, конечно. Томас: Я только что скомпилировал ее, выбрал единственный доступный основной класс, а затем запустил, и теперь, похоже, она отображает только три бесконечные строки квадратов.

Ответ №1:

Имя вашего класса Rational, но имя вашего файла Main.java

Просто сделайте их одинаковыми, и ваша проблема будет решена.

Для любого открытого класса в java имя файла и имя класса должны быть одинаковыми, а также файл может содержать только один открытый класс.

Комментарии:

1. Это звучит просто. Я только что попытался переименовать имя класса и получил ошибки в коде, есть ли способ переименовать имя файла?

2. при переименовании вы должны заменить предыдущее имя везде, где вы использовали, на новое. Лучше использовать инструмент поиска / замены редактора.

3. Проверьте это своим Rational.java файл находится в папке Rational. Потому что вы использовали «package Rational». Итак, структура файла должна быть чем-то вроде [your_working_directory]/src/Rational/Rational.java

4. Если она находится в правильной папке, но все еще появляется ошибка .. тогда загрузите обновленный снимок экрана и весь код

5. Хорошо, она запущена, но отображает только бесконечные (в теории) строки квадратов. Я опубликую код.

Ответ №2:

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

Имя файла должно быть Rational.java

Подпись должна быть:

открытый класс Rational

Имя пакета также не должно быть рациональным. Вы можете использовать «rational» в нижнем регистре, если хотите.

Ответ №3:

Может быть, вы хотели что-то вроде этого:

 package Rational;

public class Rational {
int x, y;

public Rational() {
    this.x = 0;
    this.y = 0;
}

public static void print(Rational r)
{       
    System.out.println(""   (r.x   r.y));
}

// other stuff

public static void main(String args[]) {
    Rational g = new Rational();
    g.x = 1;
    g.y = 2;

    Rational.print(g);


}
}