假設我在同一臺機器上同時運行兩個java程序。這些程序是運行在單個JVM實例中,還是運行在兩個不同的JVM實例中?同時運行在同一個JVM上運行的java程序?
23
A
回答
22
1
它依賴於平臺和JVM實現,但通常它們將運行在單獨的VM中。
1
假設你的意思是程序這個詞的過程,那麼是的,啓動兩個進程將創建兩個不同的JVM。
使用java應用程序啓動器啓動JVM進程;這應該爲您的程序提供一個入口點,這是主要方法。您可以鏈接到此入口點的其他類以及其他類。這將繼續發生在同一個JVM進程中,除非你啓動另一個進程(運行另一個程序)。
0
程序是運行在單個JVM實例中還是將運行在兩個不同的JVM實例中?
這取決於你。最簡單的方法是使用單獨的JVM。
0
你可以做的是使用兩個獨立的線程。對於exampe
new Thread() {
public void run() {
System.out.println("this is running separately from the main thread!");
}
}.start();
如果你想兩個獨立的程序進行交互,你需要使用套接字
13
java
只需一次打開啓動一個應用程序,但你可以寫一個簡單的發射是採取類名稱作爲參數並在不同的線程中執行它們。快速概要:
public class Launcher {
public static void main(String[] args) throws Exception {
for (int i = 0; i<args.length; i++) {
final Class clazz = Class.forName(args[i]);
new Thread(new Runnable() {
@Override
public void run() {
try{
Method main = clazz.getMethod("main", String[].class);
main.invoke(null, new Object[]{});
} catch(Exception e) {
// improper exception handling - just to keep it simple
}
}
}).start();
}
}
}
調用它像
java -cp <classpath for all applications!> Launcher com.example.App1 com.example.App2
應執行相同的虛擬機內部和並行應用程序App1和App2。
相關問題
- 1. 當多個Java程序在同一臺機器上運行時
- 2. 運行在同一臺機器上的多個Java程序
- 3. 如何讓一個應用程序在不同的JVM上運行?
- 4. 在同一個應用程序中同時運行AQXMLParser和NSXMLParser
- 5. 在多個計算節點上運行相同的Java程序
- 6. 同時運行兩個程序C/C++
- 7. 一個程序在多個JVM上運行?
- 8. 在Cloudbees中的JVM運行時容器中運行標準Java應用程序
- 9. 在相同的運行時間運行兩個相同的DLL?
- 10. SBCL:收集運行程序過程的輸出,同時運行
- 11. 運行在EC2上的Java應用程序的JVM指標
- 12. 在同一個IP上運行多個Web應用程序
- 13. jvm如何運行程序
- 14. 如何在同一個包中輕鬆運行java程序?
- 15. 在JVM上創建與正在運行的JVM不同的線程
- 16. 同時運行兩個版本的java
- 17. Java線程:正在運行的JVM
- 18. 控制在不同服務器上運行在不同JVM上的批處理程序的執行
- 19. 如何在運行不同程序時運行bash腳本?
- 20. 在沒有JVM的機器上運行Java應用程序
- 21. 運行一個多線程程序同步非常慢Java
- 22. java.lang.NoSuchMethodError同時運行的程序
- 23. 同時運行的應用程序kubernetes
- 24. Java - 在現有的線程上運行一個可運行的?
- 25. 在同一運行中重新運行程序
- 26. 允許模塊化開發,同時仍在同一個JVM中運行?
- 27. WPF:在兩個組合框上同時運行驗證程序
- 28. 如何在Matlab上同時運行兩個程序?
- 29. 我可以同時在iPhone上運行多個應用程序
- 30. 同時運行
他們可能共享dll,甚至編譯類(取決於實現和配置)。 – 2011-06-07 12:08:36