我在同一个包中有一组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
的主要方法。
答案 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...
}
}