有 Java 编程相关的问题?

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

java My public static void main(字符串[]args){(Windows 8)获取错误

是的,我承认,我正在看我的游戏教程。然而,他可以完美地运行它。我只有一个问题。这是我的主要问题,然后我会告诉你我的问题。或者通过标题你可以在我的主要文章中找到它。哦,那些粘贴的代码行也是我的主代码的一部分

package game.Mixit.Game.main;

public class main {
    import java.awt.Canvas;

    import javax.swing.JFrame;

    public class Game extends Canvas implements Runnable {

            private static final long serialVersionUID = 1L;

            public static final int WIDTH = 160;
            public static final int HEIGHT = WIDTH/ 12*9;
            public static final int SCALE = 3;
            public static final String name = "Game";

            private static Object start;

            private JFrame frame;

            public boolean running = false;

            public Game() {
                setMinimumSize(new Dimension(WIDTH*SCALE, HEIGHT*SCALE));
                setMaximumSize(new Dimension(WIDTH*SCALE, HEIGHT*SCALE));
                setPreferredSize(new Dimension(WIDTH*SCALE, HEIGHT*SCALE));

                frame = new JFrame(NAME);

                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());

                frame.add(this.BorderLayoud.CENTER);
                frame.pack();

                frame.setResizable(false);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);


                public synchronized void start() {
                  running = true
                  new Thread(this).start();

                }

                public synchronized void stop() {
                  running = false
                }

            }

        public void run() {
          while (running) {
              System.out.println("Hello World");}
          }



        public static void main(String[] args){
            new Game().start();
        }



        public void start() {

        }
    }

}

共 (2) 个答案

  1. # 1 楼答案

    您已经在非静态内部类中定义了main方法,因此JVM无法访问它

  2. # 2 楼答案

    您在一个类中定义了一个看起来很奇怪的类,并且您的IDE应该对您大喊大叫一些语法错误。你可能想要这样的东西:

    package game.mixit;                // <= Lowercased package
    
    // added a few imports
    import java.awt.BorderLayout;
    import java.awt.Canvas;
    import java.awt.Dimension;
    
    import javax.swing.JFrame;
    
    // Removed the main class 
    
    public class Game extends Canvas implements Runnable { 
    
      private static final long serialVersionUID = 1L;
    
      public static final int WIDTH = 160;
      public static final int HEIGHT = WIDTH / 12 * 9;
      public static final int SCALE = 3;
      public static final String NAME = "Game";
    
      private static Object start;
    
      private JFrame frame;
    
      public boolean running = false;
    
      public Game() {
        setMinimumSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
        setMaximumSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
        setPreferredSize(new Dimension(WIDTH * SCALE, HEIGHT * SCALE));
    
        frame = new JFrame(NAME);
    
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new BorderLayout());
    
        frame.pack();
    
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
      }
    
      public synchronized void start() {
        // fixed some missing ;
        running = true;
      }
    
    
      public synchronized void stop() {
        running = false;
        System.out.println("Stopping");
      }
    
      public void run() {
        start();
        while (running) {
          System.out.println("Hello World");
        }
      }
    
      public static void main(String[] args) throws InterruptedException {
        Game game = new Game();
        new Thread(game).start();
    
        // Just for kicks wait a bit then 'stop' the game
        Thread.sleep(1000);
        game.stop();
    
        System.out.println("Stopped");
      }
    }