[英]Java rejects public static void main method, requests public static void main method
我正在尝试遵循一段代码来打开和读取文本文件。 为此,我有一个名为readText的包。 在其中,我建立了一个类readLocalFile来打开和读取文件,以及一个调用它的主要方法。 以下是这两个类。
public class readFileLocal {
private String path;
public readFileLocal(String file_path){
path = file_path;
}
int readLines() throws IOException{
FileReader file_to_read = new FileReader(path);
BufferedReader lines = new BufferedReader (file_to_read);
int numberOfLines = 0;
while(lines.readLine()!= null) {
numberOfLines ++;
}
lines.close();
return numberOfLines;
}
public String[] openFile() throws IOException{
FileReader freader = new FileReader (path);
BufferedReader textReader = new BufferedReader (freader);
int numberOfLines = readLines();
String[] textData = new String[numberOfLines];
int i; /* put all the lines of text from the file to the array*/
for (i=0; i<numberOfLines; i++){
textData[i] = textReader.readLine();
}
textReader.close();
return textData;
}
}
然后我有一个主要班级来称呼它。 代码如下:
public class fileData {
public static void main(String[] args) throws IOException{
String file_name = "F:/Testfile.exl";
try{
readFileLocal file = new readFileLocal(file_name);
String[] arylines = file.openFile();
int i;
for (i=0; i<arylines.length; i++){
System.out.println(arylines[i]);
}
}
catch(IOException e) {
System.out.println(e.getMessage());
}
}
}
当我运行它时,Eclipse给了我这个错误消息:
错误:在类readText.fileData中找不到主要方法,请将该主要方法定义为:public static void main(String [] args)或JavaFX应用程序类必须扩展javafx.application.Application
知道出了什么问题吗?
您可能应该开始一个新项目。 Eclipse认为您正在运行JavaFX程序(在这种情况下,文件数据应扩展Application)。
只需执行没有JavaFX的常规构建即可。
可能您已经在同一包中声明了自己的String
类。 在这种情况下,Eclipse在您的main方法中无法识别预期的java.lang.String
。 将主方法声明编辑为
public static void main(java.lang.String[] args)
并尝试运行它。
我将您的代码加载到我的Eclipse副本中,它可以正常运行主要方法。 奇怪的是,当我保存文件时,我收到一条消息,提示字符被编码为“ Cp1252”编码,而不是预期的UTF-8。 我将代码从StackOverflow剪切并粘贴到Eclipse中。 也许这与问题有关?
在Eclipse中,您可以选择
Run > Run Configurations...
“ Main”选项卡将显示Eclipse认为是要调用的主要方法,其他选项卡将显示是否有任何参数要发送。
另外,可能值得运行
Project > Clean
为您的项目。
疯狂的事情要检查:是否还有其他同名的类? 在同一个班级文档上定义了多个班级吗?
要检查的另一件事,导航到类文档“ fileData”(实际上应该是FileData,遵循约定,因为否则会加重每个试图帮助您或与您合作的人的困惑),然后单击鼠标右键。 右键单击会为您提供以下内容吗?
Run As > 1) Java Application
还是表明这一点?
Run As > Run Configurations...
第一种情况表明找到了主要方法,第二种情况没有找到主要方法。
关于JavaFX的内容可以忽略。 您没有按照我看到的任何代码运行JavaFX,所以这个问题没有解决。
顺便说一句,在您的主要方法中,您在try / catch中捕获了IOException,因此不需要在主要方法中包括“ throws IOException”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.