有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么我得到“没有这样的方法异常”?

这是我的代码,看起来不错,但是当我编译程序时,我没有得到这样的方法异常

import java.io.IOException;

public class Invoked {

 public static String celebname = "Sometext" ;
 public static  String urladdress = "someurl
public static void main(String args[])  {

Main.setpagesource(celebname);
Main.seturl(urladdress);

    try {
        Main.Calculate();
    } catch (IOException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }
    //To change body of catch statement use File | Settings | File Templates.
    }

}

第二节课呢

import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class Main {


public static String address;
public static String celebfilename;
public static String pagesource;

public static void Calculate() throws MalformedURLException {

      URL url1 = new URL(address) ;
    URLConnection connection1 = null;
    try {
        connection1 = url1.openConnection();
    } catch (IOException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }
    BufferedReader br = null;
    try {
        br = new BufferedReader(
                new InputStreamReader(connection1.getInputStream()));
    } catch (IOException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }
    String fileName = "C:\\Users\\Dell\\Documents\\"+"pagesource"+".txt";
    File file = new File(fileName);

    if (!file.exists()) {
        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    }

    FileWriter fw = null;
    try {
        fw = new FileWriter(fileName);
    } catch (IOException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }
    BufferedWriter bw = new BufferedWriter(fw);

    String textreader;
    try {
        while ((textreader = br.readLine()) != null) {
            bw.write(textreader);
        }
    } catch (IOException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }


 }

 public static void seturl(String addressname){

   address = addressname;
}

 public static void settextfilename(String celebfilename1){
   celebfilename = celebfilename1;
}


 public static void setpagesource(String pagesourcename){
    pagesource = pagesourcename;
 }
 }

我得到以下例外情况:

"C:\Program Files\Java\jdk1.7.0_07\bin\java" -Didea.launcher.port=7541 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.0.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.7.0_07\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\jfxrt.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.7.0_07\jre\lib\ext\zipfs.jar;C:\Users\Dell\IdeaProjects\untitled6\out\production\untitled6;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.0.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain Main


Exception in thread "main" java.lang.NoSuchMethodException: Main.main([Ljava.lang.String;)
at java.lang.Class.getMethod(Class.java:1622)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113)

进程已完成,退出代码为1

我真的问了这样一个断章取义的问题,以至于我得到了太多的负面观点吗


共 (1) 个答案

  1. # 1 楼答案

    Exception in thread "main" java.lang.NoSuchMethodException: Main.main([Ljava.lang.String;)
    

    此错误意味着您的编译器找不到主类。 当出现这种错误时,大多数情况下意味着在不更改运行配置的情况下将主类从一个文件移动到另一个文件

    在Intellij中,第一次运行程序时,右键单击包含“public static main(String[]args)”方法的文件。下次单击“run”时,它将使用相同的文件并查找主类。如果你移动了你的主类,IDE就猜不到它,因此抛出这个异常

    因此,只需右键单击“Invoyed”类,然后“run Invoked.main()”即可重新运行代码。 请注意,您正在运行的类显示在绿色运行箭头的左侧

    作为一个一般提示,如果您首先遇到错误,请检查您运行的是正确的类,而不是一些旧的主类