我需要一個「主」類來創建其他獨立的類實例。他們是獨立的,他們有自己的控制檯,如果我關閉1,其他人不關閉。如何從另一個類中啓動一個獨立的java類?
例子:我有這2類
public class Class1 {
public static void main(String[] args) {
new Class1();
}
Class1() {
System.out.println("class1");
Scanner sc = new Scanner(System.in);
sc.next(); // just to stop runtime from exiting. it suspends it
}
}
和
public class Class2 {
public static void main(String[] args) {
new Class2();
}
Class2() {
System.out.println("class2");
Scanner sc = new Scanner(System.in);
sc.next(); // just to stop runtime from exiting. it suspends it
}
}
如果我啓動每一個從我的IDE我得到了我想要的東西。但是現在我只想從class1中啓動class2(實際上從class 1中的許多class 2,但獲得1會讓其他人得到我)相同。我嘗試了一個類加載器,但它不工作只是共享相同的控制檯,關閉1關閉另一個。或者我做錯了。
Class1() {
System.out.println("class1");
try {
Class<?> c = ClassLoader.getSystemClassLoader().loadClass("test.Class2");
c.newInstance();
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}
Scanner sc = new Scanner(System.in);
sc.next();
}
我不在乎如果我調用類2的構造函數或它的主要方法,只要它工作。但是我發現從1類調用main並不是什麼特別的,就像類加載器在啓動時那樣。
我不知道我是否需要一個新的進程,新的虛擬機或新的類加載器,因爲我不知道如何共享控制檯,實際上我不認爲我知道差異。我知道系統退出將退出虛擬機,所以我認爲我需要啓動一個新的虛擬機?我一定要嗎?我在這個網站上看到了幾個關於如何去做的問題,但它非常難看,而且看起來不健壯。
我不明白爲什麼人們沒有理由downvote? – Mark
在這種情況下,他們最有可能有一個理由,但我不明白爲什麼人們反對投票並且沒有理由。 –
如果您希望每個類都在其自己的控制檯中運行,並且能夠獨立退出,則需要爲每個類執行一個過程。 –