DEV Community

Mercy
Mercy

Posted on

How do you run multiple JVMs on the same PC?

Hey Code Wizards🧙🏻‍♀️💻, I hope this article finds you well. Many times people struggle to run their Java applications due to this error

 Required by:
         project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.3.2
      > Dependency requires at least JVM runtime version 17. This build uses a Java 11 JVM.
Enter fullscreen mode Exit fullscreen mode

So today I thought maybe let's discuss the issue and find out how we can help each other solve the issue. Share in the comment section, ways you think may help me and others who are facing this back-and-forth challenge with their JVM versions.

I have been seeing the error several times when I try to run any of my projects. I have two different projects that use different JVM versions, the first one uses JAVA 11 and the second one usesJVM 17. Most of the time I forget and just run the application without setting the JVM to the required JVM version and I always bump into errors. So I have to change the version each time I run my application. WHICH IS MORE FRUSTRATING😡.

The persisting issue gave me the courage to look for ways to run both my JVMs on my machine. Below is what I found

How do you run multiple JVMs on a single machine?
Yes, you can run multiple Java Virtual Machines (JVMs) on a single machine. Each time you start a Java application, a new instance of the JVM is created, running independently of others.

Yes,you can install more than one jvm in your PC, because OS loads an instance of jvm (not whole jvm) in RAM. We can call different jvm like JDK 1.4 or JDK 1.6 by setting its path.

Answers from different sources tells me that I can run more than one JVM on my PC but the issue is how?

Running Multiple JVMs:

- Independent Processes: Each Java application runs in its own JVM process, isolated from others. This isolation ensures that issues in one application don't directly affect others.
**- Resource Allocation: **Ensure your system has sufficient CPU and memory resources to handle multiple JVMs simultaneously. Each JVM will consume resources based on the application's requirements.

What I want to know
Managing Multiple Java Versions:

If you have multiple Java versions installed and need to run applications with different versions, consider the following:
Environment Variables: Set the JAVA_HOME environment variable to point to the desired Java version's installation directory. Update the PATH variable accordingly to ensure the correct Java executable is used.

For example, to set JAVA_HOME to Java 11:

export JAVA_HOME=$(/usr/libexec/java_home -v 11)
export PATH=$JAVA_HOME/bin:$PATH

Enter fullscreen mode Exit fullscreen mode

Command-Line Specification: You can specify the full path to the desired Javaexecutable when running an application:

/path/to/java11/bin/java -jar your-application.jar

Above is the answer I found yet I want to find a way to tell my application to automatically choose the version it is supposed to be using.

Here are the links to the answers
StackOverFlow

CodeRanch

THANK YOU TO THOSE WHO WILL HELP 👏

Top comments (0)