是否可以从另一个 Java 程序启动一个 Java 程序,就像我使用另一个 Java 命令启动它一样?main()
当直接从另一个程序调用一个程序的方法时, Java 上下文对于这两种执行都是通用的。我正在尝试为每个线程设置一个Java 上下文。
插图:
src/com/project/ProjectLauncher.java
public class ProjectLauncher {
static {
PropertyConfigurator.configure("log4j.properties");
}
public static void main(String[] args) {
Logger.getLogger(ProjectLauncher.class).info("started!");
// Logs well as expected.
}
}
测试/com/project/TestProject.java
public class TestProject extends TestCase {
public void testProject() {
ProjectLauncher.main(null);
Logger.getLogger(TestProject.class).info("tested!");
// The above line logs well, while log4j has been initialized in ProjectLauncher.
// I would like it to need its own initialization in this class.
}
}
我试图main
在另一个线程/可运行中启动该方法,但记录器仍由 ProjectLauncher 初始化。