我能够运行多个JVM吗?如果可以,那么我该如何找到特定的类加载在哪个JVM上?
我能够运行多个JVM吗?如果可以,那么我该如何找到特定的类加载在哪个JVM上?
虽然你的意思不是很清楚,但如下:
java
进程,无论是相同的JVM版本还是不同的版本。除非您运行调试代理或类似工具,否则我不知道有任何方法可以询问JVM进程是否加载了特定的类。这似乎是一个有些奇怪的要求 - 您为什么想要这样做呢?
java
的程序,用于启动jvm。此外,jdk还包含一些其他命令(如javac
),供开发人员使用。 Program Files/java
下(由于我目前没有可用的pc,此处只是从记忆中推断)which java
命令来确定默认java
命令的安装位置(通常为/usr/bin)。然后,在内部执行ls -al | grep java
(例如在/usr/bin中),并注意符号链接指向的位置,以便找出是否安装了其他版本。java-version
以确定当前默认版本。jconsole
,您应该会得到一个漂亮的GUI,显示所有在默认jvm中运行的程序。我认为您甚至可以检查程序的类路径。我可以运行多个JVM吗?
可以 - 只需运行“java”进程即可。
如果可以,那么如何确定特定的类加载在哪个JVM上?
与JAVA SDK一起分发的“jps”程序将列出在您的计算机上运行的所有java进程(JVM),由每个JVM执行的主类以及类路径。您需要查看每个类路径中有哪些jar或类来确定是否已加载类。
尝试运行以下命令:
jps -mlvV
看看你能得到什么
是的,您可以在计算机上安装多个JVM,因为操作系统会在RAM中加载JVM的一个实例(而不是整个JVM)。我们可以通过设置其路径来调用不同的JVM,例如JDK 1.4或JDK 1.6。
多个JRE(Java Runtime Environment)是完全可能的。我就这么做。问题在于JVM并不总是在您的系统上运行。它就像其他任何软件一样。当您运行一个jar文件时,它开始运行。
默认的JRE设置为环境变量中的JAVA_HOME(右键单击我的电脑 -> 属性 -> 高级选项卡 -> 环境变量)
要运行jar文件,只需运行此命令:
C:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe" -jar Myfile.jar
您可以使用任何其他jre javaw来运行jar文件。
请注意,j2re1.4.2_04可能不是您的jre版本。
编辑:
jar文件中的所有类都在单个JVM上运行。正如您所猜测的那样。查看您的JAVA_HOME,它是默认值。
java
或javaw
应用程序运行所需内容。每个JVM正在运行的类是包含main()
方法的那个类。当您启动Java应用程序时,Main()方法是第一个运行的东西。当然,main()位于您的某些类中。就这些。