我正在尝试编写程序,但是我收到了这个编译错误:
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) {
// ...
}
}
答案 0 :(得分:37)
您必须将文件从Main.java
重命名为WeatherArray.java
或者将该课程从public class WeatherArray {
重命名为public class Main {
答案 1 :(得分:8)
文件中公共类的名称必须与该文件的名称相同。
因此,如果您的文件声明了WeatherArray类,则需要将其命名为WeatherArray.java
答案 2 :(得分:5)
当你在硬盘上有1个Java类名,在代码中有另一个Java类名时,会发生这种情况!
例如,我在代码中仅将MainActivity
类重命名为MainnActivity
(!)。我立即收到了这个错误。
Android Studio的Project选项卡中还有一个可视指示器 - 类中的一个类,就像你有嵌套的类,但有一个错误指示器。
解决方案是简单地在Project选项卡(SHIFT
+ F6
)中重命名类名,以匹配Java代码中的名称。
答案 3 :(得分:1)
您将文件命名为 Main.java 。将您的文件命名为 WeatherArray.java 并编译。
答案 4 :(得分:1)
您的文件名为 Main.java ,应该是
WeatherArray.java
答案 5 :(得分:1)
我遇到了同样的问题,但是当我意识到我没有使用正确的大小写对其进行编译时,就解决了。你可能一直在做
javac Weatherarray.java
应该在什么时候
javac WeatherArray.java
答案 6 :(得分:0)
编译 WeatherArray.java 而不是 Main.java
如果您没有使用与公共类名称相同的名称保存源代码,则会出现此错误。
答案 7 :(得分:0)
如果您将 WeatherArray 类从公开设置为默认。
公共类 WeatherArray ======> 类 WeatherArray
那么你就不会得到任何错误并且 您只需编写代码即可轻松编译
==> javac any_name_you_assign_to_file.java
现在将生成 WeatherArray.class。
要运行你的代码,你必须使用类名
==> java WeatherArray
答案 8 :(得分:0)
从Ubuntu命令行:
//WeatherArray.java
public class WeatherArray {
public static void main(String[] args) {
System.out.println("....Hello World");
}}
ls
WeatherArray.java
javac WeatherArray.java
ls
WeatherArray.java WeatherArray.class
java WeatherArray
.... Hello World
当然,如果您用与WeatherArray不同的名称来命名Java文件,则需要将其公开,这将是:
// Sunny.java
class WeatherArray {
public static void main(String[] args) {
System.out.println("....Hello World"); }}
// javac Sunny.java; java WeatherArray
答案 9 :(得分:0)
编写“ Javac [x] .java”时,终端不区分大小写,因此请确保在终端中编写的内容与文件名和类名匹配。
我的类名和文件名均为“ MainClass”,但是我正在使用“ Mainclass”进行编译。请注意,我忘了使用“ c”作为大写字母。
答案 10 :(得分:0)
在我的情况下(使用IntelliJ),我复制并粘贴并重命名了工作区,但我仍在使用旧路径来编译新项目。
在这种情况下,也会发生此特定错误,如果您遇到相同的错误,则可以检查是否做过类似的事情。
答案 11 :(得分:0)
我遇到过同样的错误一次。这真的很有趣。我创建了一个.java文件的备份,该文件具有不同的文件名但是具有相同的类名。并继续尝试构建它,直到我检查了我的文件夹中的所有文件。
答案 12 :(得分:0)
要避免此错误,您应该按照以下步骤操作:
1) You should make a new java class
2) Name that class
3) And a new java class is made
答案 13 :(得分:0)
我是我的情况,我正在使用同步。它创建了一个我不知道的副本,我的编译失败了。
答案 14 :(得分:-1)
错误示例:
public class MaainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from activity_main.xml
setContentView(R.layout.activity_main);
}
}
正确的例子:只要确保你写的活动名称是"主要活动"
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from activity_main.xml
setContentView(R.layout.activity_main);
}
}
答案 15 :(得分:-1)
当您将文件命名为 WeatherArray.java 时,也许您在硬盘上有另一个文件,因此您可以将 WeatherArray.java 重命名为 ReWeatherArray.java < / strong>,然后将 ReWeatherArray.java 重命名为 WeatherArray.java 。没关系。
答案 16 :(得分:-1)
答案很简单。它取决于您的管理员权限。在编译java代码之前,您需要以管理员身份运行来打开命令提示符。然后编译你的代码。无需更改代码中的任何内容。类的名称需要与java文件的名称相同..就是这样!!