繁体   English   中英

Java拒绝public static void main方法,请求public static void main方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM