eclipse.exe是否作为JVM进程运行?eclipse是如何开始的?

eclipse.exe是否作为JVM进程运行?eclipse是如何开始的?,eclipse,process,jvm,startup,Eclipse,Process,Jvm,Startup,如您所知,在使用eclipse期间,我们可以尝试更改eclipse.ini中的VM参数,如 -Xmx1024m 如果我们只是使用这些参数从命令行执行Java,那么很容易理解这一点。 然而,在我们启动eclipse的过程中,我们调用了“eclipse.exe”,对吗?eclipse还允许我们在运行时更改JDK。因此,在我看来,eclipse将作为父进程启动,然后它将启动JVM子进程来处理Java内容。 但我不确定这一点,因为我无法反编译eclipse.exe。如果您熟悉启动过程,请帮助澄清这一点。

如您所知,在使用eclipse期间,我们可以尝试更改eclipse.ini中的VM参数,如

-Xmx1024m

如果我们只是使用这些参数从命令行执行Java,那么很容易理解这一点。 然而,在我们启动eclipse的过程中,我们调用了“eclipse.exe”,对吗?eclipse还允许我们在运行时更改JDK。因此,在我看来,eclipse将作为父进程启动,然后它将启动JVM子进程来处理Java内容。
但我不确定这一点,因为我无法反编译eclipse.exe。如果您熟悉启动过程,请帮助澄清这一点。感谢您的评论。

是的,
eclipse.exe
是一个小型包装程序,它启动自己的JVM,然后用于运行eclipse的其余部分。它只不过是找到一个VM,设置一些路径和类加载器,并传递其参数。

Eclipse用于此可执行文件的术语是。您可以在这个问题的答案中找到一些有用的信息:


您错误地认为Eclipse可以更改JDK运行时。您只更改用于编译和调试的JDK,但不更改运行Eclipse本身的JDK。唯一的例外是重新启动Eclipse。在这种情况下,它将重新启动整个JVM。哦..我明白了。我们可以更改库。是的,你是对的。这个问题特别回答了我的疑问。从eclipse wiki页面,我知道eclipse.exe将使用JNI启动vm。作为wiki中的语句,将加载jvm共享库并使用JNI创建vm,system process是否可以在同一进程中创建另一个系统进程?我的答案不是。我在task man中只能看到一个进程ager.我有点困惑。所以也许“创建vm”并不意味着创建Java进程。请参阅Ernest关于JVM.DLL的评论,是的,您提供的链接非常有用。很抱歉,在问一个问题之前,我不小心搜索了。所以eclipse.exe就像另一种格式的bat脚本,可以使用JNI启动JVM,对吗?然后是关于“启动自己的JVM”“,这是否意味着创建了一个新的Java进程?感谢Windows程序
Java.exe
是一个非常小的程序,它从名为(通常)
jvm.dll
的库链接到Java虚拟机中。这个小程序处理命令行参数,加载到类中,并调用
main()
(全部来自JNI).program
eclipse.exe
是一个非常类似的小程序,它链接JVM库、处理参数、加载类并调用它(同样,所有这些都来自JNI)。JVM在同一个进程中启动,而不是在新的进程中启动。