#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);
}
}
}
Обновленный снимок экрана:
Комментарии:
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);
}
}