From what I understand, virtualenv enables you to have separate library installation paths, effectively separate "virtual" Python installations.

Java doesn't have the concept of a "system-wide installed" library(*): It always searches the classpath for the libraries to be loaded. Since the classpath can be (and needs to be!) defined for each application, each application can pick-and-choose which libraries and which versions it wants to load.

If you go down one level deeper and have a single application that somehow needs two different versions of the same library at the same time, then you can do even that with some classpath trickery. It can get complicated, but it's definitely possible (OSGi is one example where this is supported, even Tomcat with two separate webapplications does this).

I've seens some references to security in the virtualenv description: Java has a pretty thorough security system built in. In server applications it's often turned off because it's just easier to configure this way, but you can easily configure what exactly a Java application is allowed to do.

(*) Almost, there are extensions or extension libraries, but they aren't used a lot and even those can easily be loaded from arbitrary directories.

Answer from Joachim Sauer on Stack Overflow
🌐
Medium
medium.com › @bhagavathidhass › virtual-environments-for-python-ruby-and-java-87743478ae38
Virtual environments for Python, Ruby and Java | by Bhagavathi Dhass | Medium
July 24, 2018 - You can check the folder /System/Library/Java/JavaVirtualMachines/ for the available versions to add to jenv · $ jenv versions #shows all the jenv added versions $ jenv global oracle64-1.6.0.39 # Configure global version $ jenv local oracle64-1.6.0.39 # Configure local version (per directory) $ jenv shell oracle64-1.6.0.39 # Configure shell instance version · Hope the above virtual environments are useful while setting up your projects.
🌐
Reddit
reddit.com › r/learnprogramming › why is there no such notion of a virtual environment in a language like java? why only in python?
r/learnprogramming on Reddit: Why is there no such notion of a virtual environment in a language like Java? Why only in Python?
August 18, 2023 -

Is it because with Java development you add the dependencies (libraries) each time to the project, and you can specify version numbers etc. while in Python everything is pip installed globally?

From what I understand, virtualenv enables you to have separate library installation paths, effectively separate "virtual" Python installations.

Java doesn't have the concept of a "system-wide installed" library(*): It always searches the classpath for the libraries to be loaded. Since the classpath can be (and needs to be!) defined for each application, each application can pick-and-choose which libraries and which versions it wants to load.

If you go down one level deeper and have a single application that somehow needs two different versions of the same library at the same time, then you can do even that with some classpath trickery. It can get complicated, but it's definitely possible (OSGi is one example where this is supported, even Tomcat with two separate webapplications does this).

I've seens some references to security in the virtualenv description: Java has a pretty thorough security system built in. In server applications it's often turned off because it's just easier to configure this way, but you can easily configure what exactly a Java application is allowed to do.

(*) Almost, there are extensions or extension libraries, but they aren't used a lot and even those can easily be loaded from arbitrary directories.

Answer from Joachim Sauer on Stack Overflow
🌐
Red Hat
docs.redhat.com › en › documentation › red_hat_data_grid › 7.0 › html › getting_started_guide › java_virtual_machine2
2.2. Java Virtual Machine | Getting Started Guide | Red Hat Data Grid | 7.0 | Red Hat Documentation
A Java Virtual Machine (JVM) is a virtual environment that runs and executes Java programs on a host operating system. The JVM acts as an abstract computer and is a platform-independent execution environment that converts the Java programming code into machine language.
🌐
Wikipedia
en.wikipedia.org › wiki › Java_virtual_machine
Java virtual machine - Wikipedia
February 22, 2026 - The Java virtual machine is an abstract (virtual) computer defined by a specification. It is a part of the Java Runtime Environment. The garbage collection algorithm used and any internal optimization of the Java virtual machine instructions ...
🌐
Quora
quora.com › Why-we-use-virtual-environment-for-Java-application
Why we use virtual environment for Java application? - Quora
Answer: In operations, to enforce secure separation of host network and device dependencies from applications. In development, often to isolate the development environment from host device and OS and facilitate efficient development effort ...
🌐
Oracle
java.com › en › download › manual.jsp
Download Java
» What is Java » Remove older versions » Security » Support » Other help · This download is for end users who need Java for running applications on desktops or laptops. Java 8 integrates with your operating system to run separately installed Java applications.
Find elsewhere
🌐
Oracle
docs.oracle.com › en › java › javase › 25 › vm › java-virtual-machine-technology-overview.html
Java Virtual Machine Technology Overview
September 15, 2025 - In Oracle Java Runtime Environment (JRE) 8 and earlier, different implementations of the JVM, (the client VM, server VM, and minimal VM) were supported for configurations commonly used as clients, as servers, and for embedded systems.
🌐
AWS
aws.amazon.com › what is cloud computing? › cloud computing concepts hub › developer tools › what is jre (java runtime environment)?
What is Java Runtime Environment? - JRE Explained - AWS
2 weeks ago - The Java Runtime Environment (JRE) technology was created as a solution to this problem. The JRE is actually one of three Java platform components that are required for any Java program to run successfully. The Java Development Kit (JDK) and Java Virtual Machine (JVM) are the other two components.
🌐
JetBrains
intellij-support.jetbrains.com › hc › en-us › community › posts › 360000523164-IntelliJ-Java-Need-Python-VirtualEnv-Set-Up-Before-Running-Java
IntelliJ Java -- Need Python VirtualEnv Set Up Before Running Java – IDEs Support (IntelliJ Platform) | JetBrains
All I care about is the Java code; I don't want to debug or test the Python code, but if the Java code can't run the Python code, it exits. From a bash shell, I would do something like this: source virtualenv/bin/activate java -cp ....
🌐
IBM
ibm.com › docs › en › i › 7.5.0
Java virtual machine
The Java virtual machine is a runtime environment that you can add into a web browser or any operating system, such as IBM i. The Java virtual machine runs instructions that a Java compiler generates. It consists of a bytecode interpreter and runtime that allow Java class files to run on any ...
🌐
Built In
builtin.com › software-engineering-perspectives › java-runtime-environment
What Is the Java Runtime Environment (JRE)? | Built In
July 22, 2025 - The Java Runtime Environment (JRE) is a software layer that enables Java applications to run. It includes the Java Virtual Machine (JVM), core libraries and necessary resources, and allows Java programs to execute consistently across different ...
🌐
Lenovo
lenovo.com › home
Java Virtual Machine: What is a Java Virtual Machine (JVM) & How Does It Work? | Lenovo US
JVM is a virtual machine that enables the execution of Java bytecode. The JVM acts as an interpreter between the Java programming language and the underlying hardware. It provides a runtime environment for Java applications to run on different platforms and operating systems.
🌐
Oracle
java.com › en
Java | Oracle
Oracle Java is the #1 programming language and development platform. It reduces costs, shortens development timeframes, drives innovation, and improves application services. Java continues to be the development platform of choice for enterprises and developers · For End Users on a Desktop ...
🌐
Britannica
britannica.com › technology › Java-Runtime-Environment
Java Runtime Environment | software | Britannica
Other articles where Java Runtime ... (JRE), or the Java virtual machine. The JRE acts as a virtual computer that interprets Bytecode and translates it for the host computer....
🌐
GeeksforGeeks
geeksforgeeks.org › java › setting-environment-java
Setting up Environment Variables For Java - Complete Guide to Set JAVA_HOME - GeeksforGeeks
May 9, 2025 - To know how to download JDK on Windows OS, refer to this article: How to Install Java on Windows, Linux, and macOS? Click Windows + S, search for "Environment Variables," and click Edit the system environment variables.
🌐
Oracle
java.com › en › download › help › whatis_java.html
What is Java technology and why do I need it?
The Java Runtime Environment (JRE) version 8 is what you get when you download Java software from java.com. The JRE consists of the Java Virtual Machine (JVM), Java platform core classes, and supporting Java platform libraries. The JRE is the runtime portion of Java software, which is all you ...
🌐
Oracle
docs.oracle.com › javase › specs › jvms › se11 › html › jvms-1.html
1.2. The Java Virtual Machine
September 16, 2025 - Visitors to Web pages incorporating dynamic content can be assured that their machines cannot be damaged by that content. Programmers can write a program once, and it will run on any machine supplying a Java run-time environment. The Java Virtual Machine is the cornerstone of the Java platform.
🌐
InfoWorld
infoworld.com › home › software development › programming languages › java
What is the JVM? Introducing the Java virtual machine | InfoWorld
September 3, 2025 - The JVM is a virtual machine that runs Java class files in a portable way. Being a virtual machine means the JVM is an abstraction of an underlying, actual machine—such as the server that your program is running on.
Top answer
1 of 2
6

What is the JVM?

The Java Virtual Machine (JVM) is an interpreter that runs Java bytecode.

When you compile a Java program the output is Java bytecode which can then be executed by the any computer that has a native JVM.

In the Java programming language, all source code is first written in plain text files ending with the .java extension.

Those source files are then compiled into .class files by the javac compiler.

A .class file does not contain code that is native to your processor; it instead contains bytecodes — the machine language of the Java Virtual Machine (JVM).

The java launcher tool then runs your application with an instance of the Java Virtual Machine.

Because the Java VM is available on many different operating systems, the same .class files are capable of running on Microsoft Windows, the Solaris Operating System (Solaris OS), Linux, or Mac OS.

Some virtual machines, such as the Java SE HotSpot at a Glance, perform additional steps at runtime to give your application a performance boost. This includes various tasks such as finding performance bottlenecks and recompiling (to native code) frequently used sections of code.

Source About the Java Technology


So how do I download a JVM?

The Java Runtime Environment (JRE) includes a JVM.

  • If you are just running Java programs the JRE is sufficient.

The Java Development Kit is a superset of the JRE (so it also includes a JVM). It also contains other tools required to develop Java programs, for example a compiler.

  • If you are developing Java programs you should download the JDK.

You can download both the JRE and the JDK at http://www.oracle.com/technetwork/java/javase/downloads/index.html


So why am I getting an error message?

The version of the JVM you already have installed is too old for the version of Eclipse you are trying to install.

In order to get a newer version you need to install either a newer JRE or a newer JDK, which both include a JVM.


I installed the latest java from this page anyway but the message is still there

A potential solution to your problem might be to uninstall Java6 (provided by Apple itself) and only have Java7 installed in your system. This only applies in case you have no applications that desperately need the old Java6 version to be installed.

To remove the Apple-like Java6 installation open a Terminal and:

sudo rm -rf /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

After this step you should only have Java7 by Oracle installed in your system. To verify, open another terminal and do a:

java -version 

It should display something like "java version "1.7.0_XX" where XX is the current update version of the Java7 installation. If not: proceed with the next step.

Redefine the JAVA_HOME variable (to support IDEs like Eclipse and other developer tools...), which helps detecting where the "active" Java installation is situated in your system. Open a terminal and (Note: replace XX first!):

sudo rm /Library/Java/Home

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_XX.jdk/Contents/Home /Library/Java/Home

Afterwards, a fresh installation of Eclipse should detect Java7 in your system and should work with this version out of the box. You can modify an installed Eclipse to use this installation by navigating in Eclipse to:

Preferences -> Java -> Installed JREs.

Then remove the old Java6 system entry AND add new path (see above) with the name Java7.

Source answer to I installed Java 7 but Eclipse keep saying that 1.6 is not suitable for this product by MWiesner

2 of 2
1

there is this JDK which is JVM plus other stuff for java development http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html That message you have a screenshot of suggests that you already have JVM 1.6 but need 1.7 or greater. But you don't need the JDK it's quite big.

This link that says free java download, would include the JVM
https://java.com/en/download/ A google says JRE includes JVM plus some classes. The other option is the JDK which includes JVM plus some tools for developers. You only need the JRE unless you're a developer than you can just get the JDK. Either way you'll get the JVM.

Try going to whatever part of the mac involves listing programs, and see if you can remove version 1.6 It seems the program that gives that message is seeing only java 1.6 and not the latest version. You can check your path echo $PATH and try to find out what java version is in your path.

this command works in windows with gnuwin32

C:\Users\harvey>java -showversion 2>&1 | head -n 1
java version "1.8.0_11"

I think it works on a linux or mac too

$ java -showversion 2>&1 | head -n 1
java version "1.8.0_11"

or just java -showversion and look at the first line of output and you'll see the version.