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

时间:2015-10-10 15:22:25

标签: java eclipse methods java-8 main

我在同一个包中有一组Java文件,每个文件都有主要方法。我现在希望逐步从另一个类调用每个类的主要方法。一个这样的类文件是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();
    }
}

我现在希望在main方法中的AllMethods.java中调用它。 那我该怎么做呢?还有一些其他类文件具有IOException的主要方法,必须在AllMethods.java文件中调用。

更新 -

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

3 个答案:

答案 0 :(得分:2)

你可以做到这一点。主方法也像任何其他静态方法一样

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


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

答案 1 :(得分:1)

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

如果你想尝试它,它很简单,你只需像任何其他静态方法一样调用main方法。我曾经在大学写过一个web服务器,在那里,为了处理身份验证,我在主要方法上进行了递归。我想我得到了一个C,因为它是不可读的代码,但我很乐意写它。

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

答案 2 :(得分:-1)

在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...
    }
}