同时运行在同一个JVM上运行的java程序?

假设我在同一台机器上同时运行两个java程序。 程序是在单个JVM实例中运行还是在两个不同的JVM实例中运行?

如果使用java命令(从命令行)启动每个命令,它们将作为完全独立的JVM运行。

“程序”可以作为在一个JVM内运行的单独线程启动。

java可以一次只打开一个应用程序,但你可以编写一个简单的启动程序 ,它将类名作为参数并在不同的线程中执行它们。 快速概述:

 public class Launcher { public static void main(String[] args) throws Exception { for (int i = 0; i 

称之为

  java -cp  Launcher com.example.App1 com.example.App2 

应该在同一个VM内并行执行应用程序App1和App2。

假设您通过单词程序来表示流程,那么启动两个流程,将创建两个不同的JVM。

使用java应用程序启动器启动JVM进程; 这应该为你的程序提供一个入口点,这是主要的方法。 您可以从此入口点以及其他类中链接到其他类。 除非您启动另一个进程(运行另一个程序),否则这将继续在同一JVM进程中发生。

它取决于平台和JVM实现,但通常它们将在不同的VM中运行。

程序是在单个JVM实例中运行还是在两个不同的JVM实例中运行?

那取决于你。 最简单的方法是使用单独的JVM。

你可以做的是使用两个单独的线程。 例如

 new Thread() { public void run() { System.out.println("this is running separately from the main thread!"); } }.start(); 

如果你想要两个独立的程序进行交互,你需要使用套接字