标题:为啥有main函数还显示java.lang.NoSuchMethodError: main
只看楼主
喵喵叫
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-10-17
结帖率:0
已结贴  问题点数:20 回复次数:6 
为啥有main函数还显示java.lang.NoSuchMethodError: main
希望有人能帮我找找错误,水平太差,实在弄不懂哪有问题……
题目:编写一个程序,读取一个list.txt文件,list.txt文件中每一行是一个文件名,程序将文件读取进来并且保存到ArrayList中,并且挨个复制里面的文件存放到同级目录下的bak目录下面。

要求:
list.txt文件不存在或者为空给出提示。(使用File.exists())
list.txt文件中所列出的文件不存在给出提示。



运行结果:
java.lang.NoSuchMethodError: main
Exception in thread "main"


ReadList.java


 package readCopyFile;
import
import
import
import
import java.util.ArrayList;

public class ReadList{

    public ArrayList<FileCpy> fileList;
    private String src;
    private String bak;

    public void main(String[] args) throws IOException {
        BufferedReader br = null;

        //捕捉异常,如果list.txt不存在,则执行catch,输出“没有找到该文件!”
        try {
                br = new BufferedReader(new FileReader("list.txt"));
                String line = "";
                while ((line = br.readLine()) != null) {
                    System.out.println(line);
                }
                reader("list.txt");//将文本内容转化为动态数组FileList中元素
            } catch (FileNotFoundException e){
                e.printStackTrace();
                System.out.println("没有找到该文件!");
            }
   
        if(FileCpy.copyDir(src, bak)){
            for(FileCpy fil:this.fileList){
                fil.copyFile();
            }
        } else{
            System.out.println("不能找到src目录");
        }
    }

    //读取文件中的内容,将每行的文件作为动态数组中的元素
    public void reader(String fileName) throws IOException{
        FileReader file=new FileReader(fileName);
        BufferedReader br=new BufferedReader(file);
        this.fileList=new ArrayList<FileCpy>();
        while(br.readLine()!=null){
            FileCpy file1=new FileCpy(br.readLine());
            this.fileList.add(file1);
        }
    }


}


FileCpy.java


package readCopyFile;

import *;

public class FileCpy {
   
    private String bak;
    private String fileName;
    public FileCpy(String name){
        setFileName(name);  
    }
    public void setFileName(String fileName) {
        this.fileName = fileName;
    }
    public String getFileName() {
        return fileName;
    }
    //复制文件
    public void copyFile()throws IOException{
        File first=new File(this.fileName);
        File second=new File(bak,this.fileName);
        if(!first.exists()) {
            System.out.println("该文件不存在!");
        } else{
            FileInputStream fis = new FileInputStream(first);
            byte[] buff = new byte[1024];
            FileOutputStream fos = new FileOutputStream(second);
            while (fis.read(buff) != -1) {
                fos.write(buff);
            }
        }
    }
    //判断src目录是否存在,建立bak目录,返回是否存在src
    public static boolean copyDir(String src,String bak){
        File srcDir=new File(src);
        File bakDir=new File(bak);
         if(srcDir.exists()){
            if(!bakDir.exists()){
                bakDir.mkdir();
            }
        }
         return true;
    }
}

    非常感谢……
搜索更多相关主题的帖子: package thread import 
2013-11-03 13:24
wangjialong
Rank: 2
等 级:论坛游民
帖 子:77
专家分:95
注 册:2012-11-8
得分:7 
我觉得可能是这样的,不知道对不对,只是个人看法。
main函数没有声明为static的,貌似我之前看到的main函数都有的。
还有main函数应该没有this指针,你要用的话就先实例化一个对象,调用对象的成员数据或函数。


新手发言,请多指教。
2013-11-04 22:39
xstar海绵
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:26
专家分:160
注 册:2013-11-3
得分:7 
附议楼上。。。少个 static
2013-11-04 22:50
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
得分:7 

此处缺少静态修饰

学海无涯#¥%……&*(
2013-11-06 16:42
喵喵叫
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-10-17
得分:0 
回复 2楼 wangjialong
恩恩,后来发现了这个问题,谢谢你啊,最近才看到
2013-11-21 15:53
喵喵叫
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-10-17
得分:0 
回复 3楼 xstar海绵
谢谢
2013-11-21 15:54
喵喵叫
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-10-17
得分:0 
回复 4楼 java小蚂蚁
O(∩_∩)O谢谢
2013-11-23 11:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-422967-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021850 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved