java安装,从java1.8升级到java11.0,java,javac,javaw,javaws,jdk,jre

news2024/11/17 3:54:47

最近在学习 PyFlink,需要安装Java11环境,但是本机已经安装了java1.8,在升级的过程中遇到了一些问题,在这里记录一下。

windows下安装JDK11

下载JDK11:https://www.oracle.com/java/technologies/downloads/#java11-windows
选择jdk-11.0.22_windows-x64_bin.exe

安装到 C:\Program Files\Java\jdk-11

发现安装后的目录中没有 jre 目录,运行CMD(以管理员身份,否则会报错)命令:

cd C:\Program Files\Java\jdk-11

bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre

JDK和JRE是Java开发和运行工具,其中JDK包含了JRE,但是JRE是可以独立安装的,一般在安装JDK的时候会安装JRE。

由于在Java1.5时,人们觉得版本更新速度很慢,都是1.x.x 的,就直接取后面的数字叫Java5,所以说其实是一种东西,只是叫法不同

JDK:Java SE Development Kit
JRE:Java(TM) SE Runtime Environment

设置环境变量,都设置在系统变量

JAVA_HOME:C:\Program Files\Java\jdk-11
CLASSPATH:.;%JAVA_HOME%\lib;
Path:%JAVA_HOME%\bin 和 %JAVA_HOME%\jre\bin

重新打开CMD窗口

> java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

> javac -version
javac 11.0.22

> echo %JAVA_HOME%
C:\Program Files\Java\jdk-11

好了,问题出现了,java 程序依然是旧的版本,javac 程序已经是新版本了。

在这里插入图片描述

java程序使用的居然是 jre 这个包。我也不知道在什么时候安装的 jre 。

还是在环境变量中找到了蛛丝马迹,在Path中,排在前面的优先级最高。

在这里插入图片描述

找到C:\Program Files (x86)\Common Files\Oracle\Java\javapath目录

在这里插入图片描述

在这里插入图片描述

发现 java.exe 程序最后修改时间与上面的 jre 的安装时间一致,莫非是在安装 jre 的时候创建的这个目录和环境变量?

解决方式要么在Path中把顺序调一下,要么使用新的java.exe程序替换掉。

> java -version
java version "11.0.22" 2024-01-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.22+9-LTS-219)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.22+9-LTS-219, mixed mode)

> javac -version
javac 11.0.22

以 jdk11.0.22 为例,它的 bin 目录下有 java.exe, javac.exe, javaw.exe;而它下面的 jre/bin目录下有java.exe, javaw.exe,他们都没有javaws.exe,这也是各个版本的问题。

javac

它是java编译器,我们直接写的.java文件必须编译成.class文件才能运行,而javac的工作就是将我们写的.java 文件翻译成.class文件。

java

The java command starts a Java application. It does this by starting the Java Runtime Environment (JRE), loading the specified class, and calling that class’s main() method.

java.exe的工作就是通过启动jre,加载特定的class文件,并调用class的主方法的方式来启动一个java应用。

javaw

The javaw command is identical to java, except that with javaw there is no associated console window. Use javaw when you do not want a command prompt window to appear. The javaw launcher will, however, display a dialog box with error information if a launch fails.

javaw.exe基本上就是java.exe ,但是javaw没有一个相关联的控制台,比如在运行 GUI 程序的时候。

javaws

它是用来启动web分发的java的程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1409630.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis入门基础篇

MyBatis基础篇 MyBatis是一款优秀的特久层框架,用于简化JDBC开发。其是Apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。由于MyBatis中的大部分API参数与数据库事务息息相…

详细介绍 Go 中如何实现 bitset

文章目录 bitset 结构元素位置代码实现构造函数BitSet 的方法基础方法containsclearadd 集合方法computeSize方法定义intersectuniondifference 遍历集合的元素总结 最近尝试在 B 站录些小视频,我的 B 站主页。录视频当是为了彻底搞懂某个知识点的最后一步吧&#x…

【C++】stack、queue的使用及模拟实现

目录 一、stack1.1 stack的使用1.2 stack的模拟实现 二、queue2.1 queue的使用2.2 queue的模拟实现 一、stack 1.1 stack的使用 stack是一种容器适配器,它的特点是后进先出,只能在容器的一端进行插入和删除操作。 stack的使用很简单,主要有…

代码随想录算法训练营31期day4,力扣24+19+02.07+142

24,动指针 class Solution { public:ListNode* swapPairs(ListNode* head) {//建立虚拟头结点auto dummynew ListNode(-1);dummy->nexthead;for(auto pdummy;p->next&&p->next->next;){auto ap->next;auto ba->next;p->nextb;a->n…

图像旋转角度计算并旋转

#!/usr/bin/python3 # -*- coding: utf-8 -*- import cv2 import numpy as np import timedef Rotate(img, angle0.0,fill0):"""旋转:param img:待旋转图像:param angle: 旋转角度:param fill:填充方式,默认0黑色填充:return: img: 旋转后…

【保驾护航】HarmonyOS应用开发者基础认证-题库

通过系统化的课程学习,熟练掌握DevEco Studio,ArkTS,ArkUI,预览器,模拟器,SDK等HarmonyOS应用开发的关键概念,具备基础的应用开发能力。 考试说明 1、考试需实名认证,请在考前于个…

林浩然的政治学奇幻漂流——幽默诙谐解读马基雅维利

林浩然的政治学奇幻漂流——幽默诙谐解读马基雅维利 Lin Haoran’s Whimsical Exploration of Machiavelli’s Political World 在一个阳光明媚的周末,我们的主人公林浩然同学决定穿越历史长河,踏上一场充满智识与笑声的探索之旅,目的地是文艺…

NineData和泽拓数据库产品Klustron完成产品兼容互认证

近日,云原生智能数据管理平台NineData和泽拓昆仑分布式数据库产品Klustron完成产品兼容互认证。经过严格的联合测试,双方软件完全相互兼容、功能完善、整体运行稳定且性能表现优异。 本次玖章算术与泽拓科技的携力合作,在双方共同的努力下&a…

nextjs中beforePopState使用

在某些情况下,希望监听popstate并在路由器对其进行操作之前执行某些操作。可以使用beforePopState。 在Next.js中,beforePopState是一个可选的生命周期函数,用于在浏览器的历史记录发生更改之前执行一些操作。具体来说,beforePopS…

DP读书:在常工院的2023年度总结

DarrenPig的年度总结 这是最好的时代,这是最坏的时代。——狄更斯 这是最好的时代,这是最坏的时代。——狄更斯 这是最好的时代,这是最坏的时代。——狄更斯 一、2023我的感受 不就是2023吗,不就是一年的经历吗,大家…

18 python快速上手

面向对象进阶 面向对象进阶1.成员1.1 变量易错点 & 面试题 1.2 方法1.3 属性 2.成员修饰符3.对象嵌套4.特殊成员总结 各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料! 面向对象进阶 目标:掌握面向对象进阶相关知识…

【JavaEE】网络编程 TCP/UDP

作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…

WorkPlus移动应用管理平台,助力企业实现高效移动办公

在移动办公成为当今工作方式的主流趋势下,管理和运营企业移动应用成为了提高工作效率和数据安全的重要环节。而移动应用管理平台作为实现移动办公高效管理的关键工具,WorkPlus以其领先的性能和全面的功能,助力企业实现高效移动办公。 为何选…

【医学图像数据增强】切割-拼接(CS-DA)

切割-拼接CS-DA CS-DA 核心思想自然图像和医学图像之间的关键差异CS-DA 步骤确定增强后的数据数量 代码复现 CS-DA 核心思想 论文链接:https://arxiv.org/ftp/arxiv/papers/2210/2210.09099.pdf 大多数用于医学分割的数据增强技术最初是在自然图像上开发的&#x…

【Docker】Kubernetes 命令行 kubectl(kubectl 使用)

作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! kubectl 使用 kubectl 是 Kubernetes 自带的客户端,可以用它来直接操作 Kubernetes。 使用格式有两种: kubectl […

C#hybridCLR热更新方案初探

前言 暂时处于初步研究状态,目前的框架使用还是尚少,本篇文章旨在同步给大家大概的使用流程和使用心得,在初步建立新项目时可以适当考虑。 介绍 热更新 与强制更新相对应,移动平台上App的可执行程序没有发生变化,仅…

免费畅享,打破写作瓶颈:星火写作助手覆盖全面,助你轻松创作

啰嗦几句 最近年终岁末,公司的各种文案各种总结,写得人是头晕脑胀,所以好多小伙伴最近在求智能写作的软件,最好是ChatGPT。 ChatGPT是国外产品,在国内并不能访问。而就智能写作来说,我们何必舍近求远呢&am…

flutter极光推送配置厂商通道(华为)笔记--进行中

一、基础集成按照下面官方文档进行 厂商通道相关参数申请教程 集成厂商 集成指南 官方文档:厂商通道回执配置指南 注意:不同厂商对app上架的要求不同,华为、荣耀 对app上架没有硬性要求 遇到问题 1、引入apply plugin: com.huawei.agconn…

2023-2024年重庆职业院校技能大赛“信息安全管理与评估”比赛样题

2023 年重庆职业院校技能大赛(高等职业教育) “信息安全管理与评估”样题任务书 第一阶段:任务 1 网络平台搭建(50 分)任务 2 网络安全设备配置与防护(250 分) 第二阶段:第一部分 网…