This Windows message means the terminal searched every folder on the PATH and found no java executable: Java is not installed, or it is installed but its bin folder is not on the PATH. It is an environment problem, not a problem with any program being run; the .jar file or application waiting on this command may be perfectly fine. The same failure appears for double-clicked jars that “do nothing”, since Windows launches them through the same lookup.
C:\Program Files\Java and C:\Program Files\Eclipse Adoptium. An empty result means install a runtime: a JDK from Temurin, Oracle, or Amazon Corretto includes the java command (and the compiler), and is the right download for development and most launchers.JAVA_HOME to the install folder (not its bin subfolder) via Settings, “environment variables”, System variables.%JAVA_HOME%\bin to the System Path variable. Avoid adding the raw versioned path in both places; the variable keeps upgrades simple.java -version. Existing windows retain the old environment and will keep failing, which is the most common reason people believe the fix “didn't take”.java -version works but the application still complains, install the required version and point that application (or JAVA_HOME) at it; multiple versions coexist fine.What is the difference between this and “javac is not recognized”? java is the runtime, javac is the compiler. If java works and javac does not, a runtime-only install or a partial PATH is present. If neither works, the whole JDK is missing from PATH. The setup steps are identical.
Why does the jar open in WinRAR or do nothing when double-clicked? The .jar file association points at an archive tool or at a java that cannot be found. Fixing the installation and PATH restores the association; jars can always be run explicitly with java -jar file.jar from a terminal.
I installed Java but the browser or game still says it is missing, why? Those checks often look at JAVA_HOME or their own settings rather than PATH. Set JAVA_HOME as above, restart the application fully, and check the application's own Java path setting if it has one.