Вопрос-ответ

Error: class X is public should be declared in a file named X.java

Ошибка: открытый класс X должен быть объявлен в файле с именем X.java

Я пытаюсь написать программу, но получаю эту ошибку компилятора:

Main.java:1: error: class WeatherArray is public, should be declared in a file named WeatherArray.java
public class WeatherArray {
^
1 error

Я проверил имена своих файлов, и мой общедоступный класс совпадает с моим файлом .java.

Как я могу это исправить?

Вот мой код:

public class WeatherArray {
public static void main(String[] args) {
// ...
}
}
Переведено автоматически
Ответ 1

Имя открытого класса должно совпадать с именем файла .java, в который он помещен (например, public class Foo{} должен быть помещен в Foo.java файл). Таким образом, либо:


  • переименуйте ваш файл из Main.java в WeatherArray.java

  • переименуйте класс из public class WeatherArray { в public class Main {

Ответ 2

Имя общедоступного класса в файле должно совпадать с именем этого файла.

Поэтому, если в вашем файле объявлен класс WeatherArray , ему должно быть присвоено имя WeatherArray.java

Ответ 3

Это происходит, когда у вас есть 1 имя для класса Java на жестком диске и другое имя класса Java в коде!!

Например, я переименовал свой MainActivity класс в MainnActivity only (!) в коде. Я немедленно получил эту ошибку.

На вкладке проекта Android Studio также есть визуальный индикатор - класс внутри класса, как у вас вложенный класс, но с индикатором ошибки.

Решение состоит в том, чтобы просто переименовать имя класса на вкладке проекта (SHIFT + F6), чтобы оно соответствовало имени в коде Java.

Ответ 4

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


javac Weatherarray.java


когда это должно было быть


javac WeatherArray.java


java