Java-在类中找不到主要方法

Posted

技术标签:

【中文标题】Java-在类中找不到主要方法【英文标题】:Java- Main method cannot be found in class 【发布时间】:2011-11-30 18:41:30 【问题描述】:

我知道这个主题已经被破坏了几次,但是我在修复它时遇到了一个错误,据说它在其他主题中是固定的。

public static class FlowAp extends JFrame
    String one = "One";
    String two = "Two";
    String three = "Three";
    String four = "Four";
    String five = "Five";

public static void main(String argv[])
    FlowAp fa=new FlowAp();
    //Change from BorderLayout default
    fa.getContentPane().setLayout(new FlowLayout());
    fa.setSize(200,200);
    fa.setVisible(true);

FlowAp()

    JButton one = new JButton("One");
    getContentPane().add(one);
    JButton two = new JButton("Two");
    getContentPane().add(two);
    JButton three = new JButton("Three");
    getContentPane().add(three);
    JButton four = new JButton("four");
    getContentPane().add(four);
    JButton five = new JButton("five");
    getContentPane().add(five);



当我实际将括号放在它们看起来应该是的位置时,flowap 会显示另一个错误。“无效的方法声明”

【问题讨论】:

在哪里是无效的方法声明,究竟是什么?这是另一个内部的嵌套类吗?请提供所有您看到的错误的详细信息。 你如何尝试启动程序? 问题标题似乎与正文不匹配。 如果你真的有一个不错的编译器,你会得到以下错误 - “类 FlowAp 的非法修饰符;只允许 public、abstract 和 final” a) 它说“FlowAp fa=new FlowAp(); b) 那是程序的开始。c) 那是错误,我只是说其他人的修复由于不同的错误,在另一个线程中将无法工作。d)我使用的是 NetBeans 7.0.1 【参考方案1】:

在您的情况下,您的班级不允许使用修饰符“static” - 删除它,它会起作用。如果您想访问您的变量,您必须将它们设为静态,以便您可以从 main 方法中引用它们。

【讨论】:

我不这么认为,但它是说如果没有静态,这将无法工作。它给出了一个单独的错误消息,关于您如何无法在静态上下文中引用非静态变量。 那你应该让你的变量是静态的,而不是你的类【参考方案2】:

请there是基本的东西,有很多错误我不能评论,然后

来自代码

import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class FlowAp extends JFrame 

    private static final long serialVersionUID = 1L;
    private String one = "One";
    private String two = "Two";
    private String three = "Three";
    private String four = "Four";
    private String five = "Five";

    public FlowAp() 
        JButton oneButton = new JButton(one);
        JButton twoButton = new JButton(two);
        JButton threeButton = new JButton(three);
        JButton fourButton = new JButton(four);
        JButton fiveButton = new JButton(five);

        setTitle("FlowAp");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        add(oneButton);
        add(twoButton);
        add(threeButton);
        add(fourButton);
        add(fiveButton);
        setLocation(100, 100);
        pack();
        setVisible(true);
    

    public static void main(String argv[]) 
        SwingUtilities.invokeLater(new Runnable() 

            @Override
            public void run() 
                FlowAp fa = new FlowAp();
            
        );
    

【讨论】:

【参考方案3】:

尝试删除“静态”:

public class FlowAp extends JFrame

【讨论】:

当我从类中删除静态时,它表明我不能在静态上下文中引用非静态变量。【参考方案4】:

应该是:

public static void main(String[] argv)

贴出你写这篇文章时发生的错误。

注意: - 类不能是静态的。

【讨论】:

没有任何区别。 []s 通常是您首选的方式,但 C 兼容方式有效。 在 java 中,[] 在哪里并不重要,String[] blah 与 String blah[]; 相同;

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

Spring Boot + Kotlin + Gradle - 错误:在类中找不到主要方法

java运行中找不到main方法

java运行中找不到main方法

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

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

(转)错误: 在类中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx