假设我在同一台机器上同时运行两个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