java -version版本不是配置的版本

本文详细解析了在使用本地Java版本时遇到版本冲突的问题,通过调整Path环境变量的位置来解决Java版本选择的问题,并解释了Path环境变量的工作原理。

今天在本地java本版的时候,发现是1.7.0了,可是我有设置java目录,classpath和path了,为什么不是我设置的版本号?

解决方法:

   设置path 时候 ,把java环境变量移到最前面,java -version之所会用1.7.0的版本是因为在path找java时候,由于path其他程序有依赖到1.7.0版本,所以遇到1.7.0就跳出来了

  这里提一下Path环境变量,当我们在cmd中输入命令时,windows首先回到当前目录中寻找可执行文件或者脚本,如果没有找到,windows会接着遍历环境变量Path中定义的路径。

转载于:https://www.cnblogs.com/iusmile/archive/2012/07/19/2599002.html

### Java -versionjavac -version 的区别 `java -version` 和 `javac -version` 是用于检查 Java 运行时环境 (JRE) 和 Java 开发工具包 (JDK) 版本的两个重要命令。尽管这两个命令看似相似,但它们的功能和作用存在显著差异: - **`java -version`** 显示的是当前系统中默认使用的 Java Runtime Environment (JRE) 或 Java Development Kit (JDK) 的运行时版本信息[^1]。此命令主要用于验证系统上的 Java 虚拟机 (JVM) 是否已正确安装及其具体版本- **`javac -version`** 则显示的是 Java 编译器 (`javac`) 的版本信息[^2]。它反映了系统上可用的 JDK 版本,因为只有完整的 JDK 包含了编译器组件。 当两者的输出不一致时,通常表明系统可能同时安装了多个不同的 Java 版本,或者是 PATH 环境变量配置不当所致[^4]。 --- ### 如何指定使用 Java 11 运行或编译代码 为了确保在开发环境中使用特定版本Java(例如 Java 11),可以通过以下几种方式进行设置: #### 方法一:通过环境变量指定 Java 11 最常见的方式是调整系统的 `JAVA_HOME` 和 `PATH` 环境变量,使其指向所需的 Java 11 安装路径。这样可以统一控制整个系统的 Java 版本- **Windows 平台** 1. 打开“系统属性”-> “高级系统设置”-> “环境变量”。 2. 创建或编辑名为 `JAVA_HOME` 的系统变量,将其值设为 Java 11 的安装目录(如 C:\Program Files\Java\jdk-11.x.x)。 3. 将 `%JAVA_HOME%\bin` 添加到现有的 `Path` 系统变量中。 - **Linux/MacOS 平台** 在用户的 Shell 配置文件(`.bashrc`, `.zshrc` 等)中添加如下内容: ```bash export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH ``` 完成后重新启动终端窗口以使更改生效,并可通过以下命令验证是否成功: ```bash java -version javac -version ``` #### 方法二:IDE 中手动指定 JDK 版本 大多数现代集成开发环境(IDEs),如 IntelliJ IDEA、Eclipse 等支持单独为每个项目定义所使用的 JDK 版本而不影响全局设置。 - **IntelliJ IDEA 示例** 1. 打开菜单栏中的 File -> Project Structure... 2. 在左侧导航树中选择 "Project" 子项。 3. 下拉框中挑选对应的目标 JDK (应选中 Java 11)作为该项目的基础平台。 #### 方法三:构建工具中明确指明目标兼容性级别 如果是借助 Maven 或 Gradle 类型自动化构建管理工具,则可在其配置文件里精确设定源码与字节码生成标准至 Java 11。 - **Maven POM.XML 文件片段** ```xml <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> ``` - **Gradle Build.Gradle 文件片段** ```groovy java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } ``` 这些措施能够有效保障即便在同一主机共存多套不同代次间的 Java 解决方案情况下依旧能按需选取适配版次开展作业活动[^5]。 --- ### 示例代码展示如何动态获取 JVM 版本信息 下面提供了一段简单的 Java 应用程序示例,它可以报告应用程序实际运行所在的 JVM 版本详情: ```java public class DisplayJvmInfo { public static void main(String[] args){ String runtimeVer = System.getProperty("java.runtime.version"); String specVer = System.getProperty("java.specification.version"); System.out.println("Runtime Version: "+runtimeVer); System.out.println("Specification Version: "+specVer); if(specVer.equals("11")){ System.out.println("This program is running under Java SE 11."); } else{ System.err.println("Warning! This application requires Java SE 11 but it's currently executed on another version."); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值