Java -version 显示 java 8,而安装了 java 11

问题描述 投票:0回答:9

在我的系统上安装 java 11 后,运行时仍然是 1.8

安装的java版本:

  • C:\Program Files\Java\jre1.8.0_201
  • C:\Program Files\Java\jdk-11.0.3

JAVA_HOME 环境变量值:

C:\Program Files\Java\jdk-11.0.3

从命令提示符运行

java -version
命令,期望看到 java 11 信息,但我看到的是 java 8。

更改环境变量值不会改变结果,重新启动似乎没有做任何事情。

C:\Users\user>java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) Client VM (build 25.211-b12, mixed mode)

预计会显示 java 11 运行时信息

java aws-java-sdk
9个回答
31
投票

这件事昨天才发生在我身上。 严格按照说明进行操作,但仍然得到了不同的 Java 版本 (1.8.0),而不是我下载的 JDK11 版本的预期版本 (11.0.5)。 有趣的是,CMD 提示符为 'javac -version' 命令返回了正确的 Java 版本 (11.0.5),但不是常规 'java -version' 命令。 我的 IT 专家甚至告诉我尝试卸载现有的 Java 负载,因为他想不出还有什么可以尝试的......(我最终没有删除 Java)

事实证明他确实帮助了我,也许是无意的,但只是事后才意识到这一点。 他告诉我尝试移动路径变量

%JAVA_HOME% 位于

在[编辑环境变量]窗口中找到的路径变量显示列表的最顶部,用于PATH系统变量选项。 这并没有立即起作用,所以我们认为它没有效果。 但我相信这失败了,因为事实证明我在首先输入变量时犯了一个疏忽。 我用小写字母而不是大写字母写了“家”这个词。 一旦我意识到我的错误并将其修复为以大写字母显示“HOME”,我的 CMD 提示符就会返回正确的 java -version (11.0.5),它与 javac -version 命令结果相匹配。

请注意:
然后,我尝试将 %JAVA_HOME% in 变量移回列表的底部(它最初创建的位置),并且 java -version 命令不再显示 v.11.0.5,而是返回 v 的原始答案。 1.8.0。 所以,我玩了一下,发现这个变量需要是现有 PATH 窗口中的以下变量:

C:\Program Files (x86)\Common Files\Oracle\Java\javapath

希望这对其他人有帮助,就像它帮助我一样!


5
投票

enter image description here 对于 Java 8,您可以如图所示创建 JAVA8_HOME


3
投票
path

而不是更新系统变量来解决这个问题。


目前我有:

JAVA_HOME = C:\Program Files\Java\jdk-11.0.6


path

包含

%JAVA_HOME%\bin

(在用户变量中)


3
投票

在cmd/terminal中 - 输入

where java

,这将返回系统中所有已安装的java版本。

enter image description here 就我而言,我前段时间以某种方式安装了 java 11(我不记得是什么时候)。然后我

小心地

删除了上面列表中的java 11和Oracle java 2个目录。然后添加了JAVA_HOME

enter image description here和 PATH - %JAVA_HOME%\bin

,然后就可以了。

enter image description here

在系统环境变量中,追加 PATH 以指向新 JDK 的 bin 文件夹,并删除旧条目

2
投票
%JAVA_HOME%\bin

1: Click on Start (Windows) button.
2: Write Environmental variables.
3: Select the item.
4: Go to Advanced tab.
5: Click Environmental Variables.
6: Look for the one called "path".
7: Check for the java 7 instalation and change it to the path of your Java 11 instalation (C:\Program Files\Java\jdk-11.0.3).

1
投票
只需确保您已在用户变量和系统变量中添加以下路径即可。
C:\Program Files\Java\jdk-11.0.3

1
投票
它肯定会起作用,如果不行的话请尝试将它们放在顶部。

#!/bin/bash echo "Starting the ACS Transaction Data Generation Process..." # Function to check if a path exists check_path() { if [ ! -e "$1" ]; then echo "Path does not exist: $1" exit 1 fi } # Function to setup environment paths setup_environment() { ENV=$1 if [ "$ENV" = "local" ]; then JAVA_CMD="C:/Program Files/Java/jdk1.8.0_111/bin/java" # Adjust based on local Java installation CONFIG_PATH="C:/your_project_path/config" MCGETPW_JAR="C:/your_project_path/lib/MCGetPW.jar" LIB_JARS=$(echo C:/your_project_path/lib/*.jar | tr ' ' ':') elif [ "$ENV" = "perf" ]; then JAVA_CMD="/sys_apps_01/java/java-1.8.0-openjdk-1.8.0.111.x86_64/bin/java" CONFIG_PATH="/apps_data_01/ppapi/regressionSuite/config" MCGETPW_JAR="/usr/local/share/jni/MCGetPW.jar" LIB_JARS=$(echo /apps_data_01/ppapi/regressionSuite/lib/*.jar | tr ' ' ':') else echo "Unknown environment: $ENV. Usage: $0 <local|perf> <number_of_transactions>" exit 1 fi check_path "$JAVA_CMD" check_path "$CONFIG_PATH" check_path "$MCGETPW_JAR" for jar in $(echo $LIB_JARS | tr ':' ' '); do check_path "$jar" done } # Read arguments if [ -z "$1" ] || [ -z "$2" ]; then echo "Usage: $0 <local|perf> <number_of_transactions>" exit 1 fi ENVIRONMENT=$1 NUM_TRANSACTIONS=$2 # Set up environment-specific paths and variables setup_environment "$ENVIRONMENT" # Ensure classpath is correctly formed CLASSPATH="$CONFIG_PATH:$MCGETPW_JAR:$LIB_JARS" echo "Classpath set to: $CLASSPATH" # Verify the presence of main class in the JAR files echo "Checking for presence of main class com.mastercard.perftest.data.generator.AcsTransactionDataGenerator..." JAR_FILES=$(echo $LIB_JARS | tr ':' ' ') for jar in $JAR_FILES; do if jar tf $jar | grep -q "com/mastercard/perftest/data/generator/AcsTransactionDataGenerator.class"; then echo "Class found in $jar" CLASS_FOUND=true break fi done if [ -z "$CLASS_FOUND" ]; then echo "Main class com.mastercard.perftest.data.generator.AcsTransactionDataGenerator not found in any JAR file" exit 1 fi # Execute AcsTransactionDataGenerator with maxSize and env arguments echo "Executing AcsTransactionDataGenerator with $NUM_TRANSACTIONS transactions in $ENVIRONMENT environment..." $JAVA_CMD -cp "$CLASSPATH" com.mastercard.perftest.data.generator.AcsTransactionDataGenerator $NUM_TRANSACTIONS $ENVIRONMENT STATUS=$? if [ $STATUS -ne 0 ]; then echo "AcsTransactionDataGenerator failed with status $STATUS" exit $STATUS else echo "AcsTransactionDataGenerator succeeded" fi echo "Data generation process completed"

0
投票
在 Windows 10 上

-1
投票
下载 JDK 11,运行 .exe 。

按照步骤操作,问题就解决了!

复制了存放jdk的链接。
  1. 例如

    :C:\Program Files (x86)\Java\jdk-11.0.12\
    bin

    系统属性 -> 环境变量 -> (在系统变量部分) -> 单击路径 -> 编辑 -> 在路径列表中(
  2. C:\Program Files (x86)\Common Files\Oracle\Java\javapath
  3. ),点击旁边的编辑文本(点击ok),现在将存放jdk的路径复制到路径列表的末尾。

    在同一部分(在系统变量部分) - >单击新建 - >变量名称:
  4. JAVA_HOME
  5. 和变量值:C:\ Program Files(x86)\ Java \

    jdk-11.0.12(没有文件bin !!) -> 单击“确定”并关闭窗口。

    打开 CMD 并运行 -> java -version 和下一个 javac -version。
  6. 希望您觉得它有用。

© www.soinside.com 2019 - 2024. All rights reserved.