Java: 从另一个 class 中的 main 方法调用 main 方法

Java: Call a main method from a main method in another class

我在同一个包中有一组 Java 个文件,每个文件都有主要方法。我现在希望每个 class 的主要方法从另一个 class 逐步调用。一个这样的 class 文件是 Splitter.java。这是它的代码。

public static void main(String[] args) throws IOException {

    InputStream modelIn = new FileInputStream("C:\Program Files\Java\jre7\bin\en-sent.bin");
    FileInputStream fin = new FileInputStream("C:\Users\dell\Desktop\input.txt");
    DataInputStream in = new DataInputStream(fin);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    String strLine = br.readLine();
    System.out.println(strLine);

    try {
        SentenceModel model = new SentenceModel(modelIn);
        SentenceDetectorME sentenceDetector = new SentenceDetectorME(model);
        String sentences[] = sentenceDetector.sentDetect(strLine);

        System.out.println(sentences.length);
        for (int i = 0; i < sentences.length; i++) {
            System.out.println(sentences[i]);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (modelIn != null) {
            try {
                modelIn.close();
            } catch (IOException e) {
            }
        }
        fin.close();
    }
}

我现在希望在 AllMethods.java 主方法中调用它。 那我该怎么做呢?还有其他几个 class 文件的主要方法 IOException 必须在 AllMethods.java 文件中调用。

更新 -

我有具有 IOException 的主要方法以及必须在 AllMethods.java 中调用的没有 IOEXception 的主要方法。

你可以的。 Main 方法也与任何其他静态方法一样

public static void main(String[] args) throws IOException {
 ....// do all the stuff


Splitter.main(args); // or null if no args you need
}

首先,您可能应该做的是重构您的代码,以便每个主要方法调用一些其他方法,然后 AllMethods 调用这些新方法。我可以想象,在某些情况下,如果您只是尝试编写一些测试代码,但通常您不想直接调用 main 方法,那么它可能很有用。只是更难阅读。

如果您想尝试一下,这很简单,您只需像调用任何其他静态方法一样调用 main 方法。我曾经在大学写过一个 Web 服务器,为了处理身份验证,我在 main 方法上递归。我想我得到了 C,因为它是不可读的代码,但我写得很开心。

class AllMethods {
    public void callsMain() {
        String[] args = new String[0];
        Splitter.main(args);
    }
}

在Main.java中,main方法应该添加如下所示的throws Exception:

package com.company;

import java.io.FileNotFoundException;

public class Main extends makeFile {

    public static void main(String[] args) throws FileNotFoundException {

        makeFile callMakeFile = new makeFile();

        makeFile.main(args);
        // cannot figure out how to call the main method from the makeFile class here...
    }
}