java - 如何修复以下错误 : "Error: Main method not found in class"

标签 java parameters arguments

我基本上是 Java 的新手,为了好玩,我正在创建一个股票市场模拟器/游戏。我知道我的代码并不“完美”,但请记住我是新手,我有 1 个错误。

"Error: Main method not found in class StockPackage.Dog, please define the main method as: public static void main(String[] args)"

我查看了我能找到的所有参数和参数教程,并搜索了 StackOverflow 的问题,但找不到解决方案。

如果可以,有人可以想出一种方法来“删除/修复”错误,或者尽可能地帮助我。提前致谢!

我的代码:

package StockPackage;

import java.util.Scanner;    

public class Dog {      

    public static void main(String[] args, int CurMoney, String[] inputStocks, 
        int[] StockMoney) {
        Dog Run = new Dog();
        Run.MainScript();
        Run.OptionStartingMethod(inputStocks, CurMoney, StockMoney);
    }     

//==============================================================================
//                          ||Objects||
    void options(String[] inputStocks, int CurMoney, int[] StockMoney) {
        String optionEXIT, optionStartStock, optionBuyStock, optionSellStock;
        String optionCheat, optionInfo, optionCredits, optionClose, OptionInput;
        int i, j, k;            

        Scanner optionInput = new Scanner(System.in);

        Dog FlixSibling = new Dog();            

        System.out.println("=============| Options | =============");
        System.out.println(" optionEXIT       " + " optionStartStock   " + "optionBuyStock");
        System.out.println(" optionSellStock  " + " optionCheat   " + "     OptionInfo  ");
        System.out.println(" optionCredits    " + " optionClose   " + "        optionCheckCash");
        System.out.println();
        System.out.print("==|  ");

        OptionInput = optionInput.nextLine();

        if(OptionInput.equals("optionEXIT")) {
            FlixSibling.Close();
        } else if(OptionInput.equals("optionStartStock")) {

            StartStock(inputStocks, StockMoney, CurMoney);
        } else if(OptionInput.equals("optionBuyStock")) {

        } else if(OptionInput.equals("optionSellStock")) {

        } else if(OptionInput.equals("optionCheat")) {

        } else if(OptionInput.equals("optionInfo")) {

        } else if(OptionInput.equals("optionCredits")) {

        } else if(OptionInput.equals("optionClose")) {
            optionClose1(inputStocks, CurMoney, StockMoney);
        }

    }
//==============================================================================
//                        ||Option Holders||
    void optionClose1(String[] inputStocks, int CurMoney, int[] StockMoney) {
        int i, j, k;
        for(i = 0; i <= 25; i++) {
            System.out.println();
        }
        MainScript();
        for(i = 0; i <= 3; i++) {
            System.out.println();
        }
    }
    void OptionStartingMethod(String[] inputStocks, int CurMoney, int[] StockMoney) {
        Scanner InputBoard1 = new Scanner(System.in);

        String Options;
        System.out.println();
        System.out.println("Option: Press 'P'");

        Options = InputBoard1.nextLine();

        if(Options.equals("P")) {
            options(inputStocks, CurMoney, StockMoney);
        }
    }
//==============================================================================
//                      ||StartStock Method||
    void StartStock(String[] inputStocks, int[] StockMoney, int CurMoney) {
        Dog StartStocking = new Dog();

        String Answer;
        String name, price;
        int CurCash;

        Scanner StartingStockInput = new Scanner(System.in);

        System.out.println();
        System.out.println("Do you Wish to create a Stock? (y/n)");
        Answer = StartingStockInput.nextLine();

        if(Answer.equals("y")) {
            System.out.println("$15000 Has been taken out of your Account");
            CurMoney -= 15000;    // for Creating the Stock

            System.out.println("Name|  ");
            name = StartingStockInput.nextLine();

            System.out.println("input Amount of Cash|  ");
            CurCash = StartingStockInput.nextInt();
            if(CurCash > CurMoney) {
                CurCash = CurMoney;
            }
            MainScript();


        } else if(Answer.equals("n")) {
            optionClose1(inputStocks, CurMoney, StockMoney);
        }

    }


//==============================================================================
//                        ||Close Method||
    void Close() {
        System.out.println();
        System.out.println();
        System.out.println("You Exit'ed out of Stock market SIM");
    }

//==============================================================================
//                        ||Main Method||
    void MainScript() {

        System.out.println("Welcome to the Stock Market");

                //        ||Variables||
        int StockPercent;
        int CurMoney;
        String Options;
        CurMoney = 64000;
        String Place, Place1, Place2;
        Place = "0";
        Place1 = ",000";
        Place2 = ",000,000";
        String nothing = "|Under Construction|";
        int i, j, k;

        Dog Flix = new Dog();

        boolean Construction = false;

        int[] StockMoney;
        StockMoney = new int[500];

        String[] inputStocks;
        inputStocks = new String[200]; // Used for storing the inputed Stocks
                                       // 50 And Above are used for Creating Stocks
        String per = "%";

        inputStocks[0] = "Google"; 
        StockMoney[50] = 0; 
        StockMoney[0] = 400000000;     // Using the 2 bit 000's for the millions place;

        inputStocks[2] = "MicroSoft";
        StockMoney[51] = 0;
        StockMoney[1] = 250000000;

        inputStocks[4] = "Yahoo";
        StockMoney[52] = 0;
        StockMoney[2] = 100000000;

        inputStocks[6] = "Cheeez It's";
        StockMoney[53] = 0; 
        StockMoney[3] = 50000;




                //         ||input From User||
        Scanner InputBoard = new Scanner(System.in);



                //         ||Output From Program||

        System.out.println("[]---------------| Stocks |---------------[]");
        System.out.println(inputStocks[0] + "      " + StockMoney[0] + "    " + StockMoney[50] + per);
        System.out.println(inputStocks[2] + "   " + StockMoney[1] + "    " + StockMoney[51] + per);
        System.out.println(inputStocks[4] + "       " + StockMoney[2] + "    " + StockMoney[52] + per);
        System.out.println(inputStocks[6] + " " + StockMoney[3] + "        " + StockMoney[53] + per);
        System.out.println();
        System.out.println();



        if(Construction) {
            System.out.println(nothing);
            System.out.println(nothing);
            System.out.println(nothing);
            System.out.println(nothing);
            System.out.println(nothing);
            System.out.println(nothing);
            System.out.println(nothing);
            System.out.println(nothing);
        }
    }


}

最佳答案

您的 main 方法与通常启动 Java 应用程序的标准 main 方法的签名不匹配。你的参数太多了,应该只有一个参数,一个字符串数组。

所以你必须改变这个:

// incorrect main method signature
public static void main(String[] args, int CurMoney, String[] inputStocks, int[] StockMoney) {

为此:

// correct main method signature
public static void main(String[] args) {

并以某种方式获取所需的所有信息,也许是从文件中?

关于java - 如何修复以下错误 : "Error: Main method not found in class",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26290520/

相关文章:

java - 将参数从 java 程序传递到 bash 脚本,该脚本使用参数调用另一个 java 程序

java - Swagger 自动配置过程中会扫描哪些类?

java - 未找到(错误代码 : 22 "Invalid argument")

java - 如何使用 jruby 对 java 应用程序使用 rspec?

java - JPA 标准 API。使用带有参数的sql函数调用查询

vbscript - 我可以将参数传递给 VBScript(使用 cscript 启动的 vbs 文件)吗?

java - 如何让 ReSTLet 客户端忽略 SSL 证书问题

c++ - 在指向另一个宏的可变参数宏中为每个参数添加前缀

sql-server - 在对 SQL Server 的直通查询中 Access VBA 参数

r - 为什么 deparse(substitute(x)) 不选择 'x' 的名称