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...
}
}
我在同一个包中有一组 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...
}
}