java运行中找不到main方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java运行中找不到main方法相关的知识,希望对你有一定的参考价值。

public class HelloWorld
public static void main(String [] args)
System.out.println("HelloWorld");
System.out.println(456);

。该程序可通过编译,但用java运行时,就会出现错误:Exception in thread "main" java.lang.NoSuchMethodError: main
请高手赐教是出了什么问题?
我的环境变量配置为:
classpath: .;D:\jdk1.6.0_13\lib\dt.jar;D:\jdk1.6.0_13\lib\tools.jar;E:\java
path: D:\jdk1.6.0_13\bin
path_home: D:\jdk1.6.0_13
各位再抽点时间帮忙看看,配置中哪里有错了?我实在找不到错误在哪了,先谢谢了!

说明当前类中没有运行入口(main方法)。
解释:java运行中规定main方法作为java项目的入口之一,也就是说如果运行的是java类,但是类中没有main方法,此时就会报此错错误。
解决办法:在类中创建main方法,或者是去有main方法的类中执行。
参考技术A 回答

您好友友,经我们的查询与研究,为您整理以下内容:我常用的几种方法:1、检验Main函数的写法:public static void main(String XXX[])2、检验JDK是否出错:打开C盘->Program Files->Java,看是否有jdk1.6.0或其它版本的文件夹,如果没有赶紧去Sun的官方网站下载。3、检验环境变量:右键点击我的电脑,选择属性->高级->环境变量,看CLASSPATH是否包括jdk包的bin地址。JBuilder2006会自动更改该变量,但有可能安装出错了。(JBuilder通常用自己的jdk)4、测试:创建一个简单的java文件,点击开始,打开“运行”,输入cmd,输入javac XXX.java,然后java XXX,看是否还出现此错误5、将编写的java文件找到,在cmd命令运行试试 1

参考技术B 回答

一、问题描述错误: 在类 com.zpt.three.GenericTest1 中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx.application.Application二、解决方法其实能碰到这个问题大家可能都不是差一句public static void main(String[] args)很有可能是不小心导入了其他的同名包!我的问题就是导入了一个不是常用的String(自动补全补的)把它去掉就好了五、一点碎碎念1.如有问题以及建议,欢迎联系邮箱:zpt艾特mail.nankai.edu.cn(为了防止被爬虫,艾特换为@)2.也欢迎通过微信公众号:SoulDa 进行交流

提问

怎样导入一个不是常用的String,把他去掉就可以了

参考技术C 楼主,你好!

上面的程序,没有错,

首先,Java命令如果不能运行,确认你的classpath路径设置正确,

好,那我们来运行:

编译 javac HelloWorld.java

运行 java HelloWorld

还有错!!那百度一下,Java 路径设置!!网友的回答很详细,的!!

祝楼主早日成功!!本回答被提问者采纳
参考技术D 可能你没有装好软件。好像我也有过。有时重启下就可以了。是重启软件哦,,

在类中找不到 main(String[]) 方法:TapeDeck。主要方法在运行程序的另一个类中

【中文标题】在类中找不到 main(String[]) 方法:TapeDeck。主要方法在运行程序的另一个类中【英文标题】:Can't find main(String[]) method in class: TapeDeck. The main method is in the other class which runs the program 【发布时间】:2019-09-11 16:13:54 【问题描述】:

我有两节课。当我将类 TapeDeckTestDrive 首先放在文本编辑器上时,它运行良好。当我把TestDrive类放在第一位时,它给出了找不到主类的错误。这是为什么呢?

class TapeDeck 
    boolean canRecord = false;
    void playTape()
        System.out.println("tape playing");
    
    void recordTape()
        System.out.println("tape recording");
    


class TapeDeckcTestDrive
    public static void main(String[] args)
        TapeDeck t = new TapeDeck();
        t.canRecord = true;
        t.playTape();

        if (t.canRecord == true) 
            t.recordTape();
        
    

此格式错误

VS

以下工作正常:

class TapeDeckcTestDrive
    public static void main(String[] args)
        TapeDeck t = new TapeDeck();
        t.canRecord = true;
        t.playTape();

        if (t.canRecord == true) 
            t.recordTape();
        
    


class TapeDeck 
    boolean canRecord = false;
    void playTape()
        System.out.println("tape playing");
    
    void recordTape()
        System.out.println("tape recording");
    

【问题讨论】:

你的java类(文件)名是什么? 解决这个问题的简单方法,也是最好的方法是每个文件有一个类。 @Abdul Hussain 请告诉文件名 它运行良好,它给出了错误:什么是“它”。你如何执行你的应用程序? 这不是执行课程的最佳方式。首先你用 javac 编译你的代码。然后使用 java 并传递包含 main 方法的类的完全限定名称。 【参考方案1】:

在某些 JDK 中,JVM 首先处理入口点函数,因此需要先编写它,然后再编写其余代码。由于 main 函数是我们的入口函数,所以必须先编写。

【讨论】:

【参考方案2】:

您可以通过两种方式运行 java 程序。

    直接运行java程序

      java example_program.java
    

    在这种类型中,编译和执行发生在运行时。那是 字节码立即生成并执行(作为解释器工作) 所以,你必须先使用超类(包含主方法),然后再使用其他 复合类。

注意: 不会生成 .class 文件。这意味着,它将在内部生成字节码并执行。程序员无法查看类文件。

    在第二种类型中,首先,你应该编译,

     javac example_program.java 
    

它将生成 example_program.class 。然后,使用,执行类文件,

     java example_program

在这里,编写类的顺序不受影响。您可以按任何顺序编写类。它会正常工作的。

【讨论】:

【参考方案3】:

首先,您必须使用javac 编译文件。 然后,您必须运行该文件。

编写 main 的类名。

javac filename.java
java classname

【讨论】:

【参考方案4】:

使用命令编译代码后:

javac fileName.java

通过仅指定 fileName 而不带 .java 扩展名来运行 java .class 文件

java fileName

如果您使用fileName.java,它将不会运行特定的.class 文件;它将尝试解释.java 文件。如果要解释 .java 文件,则父类必须包含 main(String[]) 方法。

【讨论】:

【参考方案5】:

我将它分成两个文件,并将 public 添加到类/方法以及布尔值。现在代码运行。

【讨论】:

以上是关于java运行中找不到main方法的主要内容,如果未能解决你的问题,请参考以下文章

java运行程序找不到main方法

java中已经定义了main函数,运行报错类中找不到主方法,求大神解答是啥原因!

Java 错误,提示找不到 main class

IDEA中怎么多开运行main方法

在类中找不到 main(String[]) 方法:TapeDeck。主要方法在运行程序的另一个类中

eclipse 运行错误:在类XXX中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应