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

最近在学习 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 的时候创建的这个目录和环境变量?

找到 C:\Program Files\Common Files\Oracle\Java\javapath 目录
在这里插入图片描述
找到C:\ProgramData\Oracle\Java\javapath目录
在这里插入图片描述

解决方式要么在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的程序。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【SVD生成视频+可本地部署】ComfyUI使用(二)——使用Stable Video Diffusion生成视频 (2023.11开源)

SVD官方主页 : Huggingface | | Stability.ai || 论文地址 huggingface在线运行demo : https://huggingface.co/spaces/multimodalart/stable-video-diffusion SVD开源代码:Github(含其他项目) || Huggingface 在Comfyui使用&…

[bat]基于msg的弹窗提示

一、方案 1、定时自动消失的弹窗 代码: echo off echo method 1 msg * /time:5 "123456" REM echo method 2 REM msg * "123456"pause 效果: 立即弹窗在5秒后消失。 2、一直存在的弹窗 源码: echo off REM echo m…

方法重载与方法重写差别

写在开头 请聊一聊Java中方法的重写和重载? 这个问题应该是各大厂面试时问的最多的话题之一了,它们几乎贯穿了我们日常的开发工作,在过往的博客中我们多多少少都提到过重载与重写,而今天我们就一起来详细的学习一下这二者的功能与…

【Elsevier】中科院2区SCI,仅3个月录用!接收领域广!

关注公主号【SciencePub学术】,发现期刊更多精彩~ 1 数据处理类SCIE(高质量) 【期刊简介】IF:6.5-7.0,JCR1区,中科院2区; 【出版社】Elsevier出版社 【版面情况】正刊,仅5篇版面…

jetson-inference----docker内运行分类任务

系列文章目录 jetson-inference入门 jetson-inference----docker内运行分类任务 文章目录 系列文章目录前言一、进入jetson-inference的docker二、分类任务总结 前言 继jetson-inference入门 一、进入jetson-inference的docker 官方运行命令 进入jetson-inference的docker d…

Github 2024-01-26 开源项目日报Top10

根据Github Trendings的统计,今日(2024-01-26统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4Jupyter Notebook项目2HTML项目1Shell项目1Dockerfile项目1非开发语言项目1Go项目1Rust项目1 高级…

最小覆盖子串(Leetcode76)

例题: 分析: 比如现在有字符串(s),s "ADOBECODEBANC", 给出目标字符串 t "ABC", 题目就是要从原始字符串(s)中找到一个子串(res)可以覆盖目标字符串 t &…

vue3预览pdf文件的几种方法

vue3预览pdf集中方法 方法一&#xff1a; iframe&#xff1a;这种方法显示有点丑 <iframesrc"E:\\1.pdf"frameborder"0"style"width: 80%; height: 100vh; margin: auto; display: block"></iframe>方法二&#xff1a; 展示效果&…

【C++】wxWidgets编程的程序入口点

在wxWidgets中&#xff0c;程序的入口点通过wxIMPLEMENT_APP宏定义来设置&#xff0c;该宏会扩展为一个实现了main函数或者在Windows上是WinMain函数的代码。wxIMPLEMENT_APP宏与wxDECLARE_APP宏一起使用来设置基于wxWidgets的应用程序的启动代码。 使用wxIMPLEMENT_APP宏通常是…

【AI Agent系列】【MetaGPT】9. 一句话订阅专属信息 - 订阅智能体进阶,实现一个更通用的订阅智能体(2)

文章目录 0. 前置推荐阅读和本文内容0.1 前置推荐阅读0.2 本文内容 1. 修改一&#xff1a;直接用大模型获取网页信息&#xff0c;不用爬虫程序1.1 我们要给大模型什么内容1.2 提取网页文本信息1.3 组织Action1.4 完整代码及细节注释1.5 可能存在的问题及思考 2. 修改二&#xf…

实体识别与分类方法综述

目录 前言1 实体识别简介2 基于模板和规则的方法3 基于序列标注的方法3.1 常见序列标注模型3.2 模型参数估计和学习问题3.3 常见序列预测模型 4. 基于深度学习的实体识别方法5 基于预训练语言模型的实体识别5.1 BERT、GPT等预训练语言模型5.2 解码策略 6 特殊问题与挑战6.1 标签…

视频渲染靠cpu还是显卡 会声会影视频渲染的作用是什么

视频渲染最占用的资源就是CPU&#xff0c;多核心多线程&#xff0c;这样才能渲染快。渲染可以在时间线上实时平滑预览&#xff0c;便于编辑&#xff0c;最终导出成片的时候速度也会快一些&#xff0c;渲染就是对每桢的图像进行重新优化的过程。 渲染的作用主要是能够保证使用者…

C#使用RabbitMQ-2_详解工作队列模式

简介 &#x1f340;RabbitMQ中的工作队列模式是指将任务分配给多个消费者并行处理。在工作队列模式中&#xff0c;生产者将任务发送到RabbitMQ交换器&#xff0c;然后交换器将任务路由到一个或多个队列。消费者从队列中获取任务并进行处理。处理完成后&#xff0c;消费者可以向…

outlook如何群发邮件?外贸邮件群发教程?

outlook邮箱群发邮件方法&#xff1f;outlook怎么设置邮件群发&#xff1f; 如果你正在使用Outlook&#xff0c;那么你一定想要知道如何有效地群发邮件。Outlook作为微软办公套件的一部分&#xff0c;不仅功能强大&#xff0c;而且操作简便。下面&#xff0c;蜂邮EDM就来详细讲…

vscode开发FPGA(1)---TEROS_HDL插件报错

一、TerosHDL:modelsim(vlog-66)报错 Error: (vlog-66) Execution of vlib.exe failed 解决办法&#xff1a; 1.新建modelsim工程&#xff0c;并随意编译一个.v文件&#xff0c;将产生的work目录复制到modelsim安装路径下。 2.再将vscode设置verilog>linting>modelsim…

vue3 + jeecgBoot 获取项目IP地址

封装的useGlobSetting 函数 引入并使用 import { useGlobSetting } from //hooks/setting;const glob useGlobSetting();console.log(glob.uploadUrl) //http://192.168.105.57:7900/bs-axfd

docker的资源限制(cgroup)

前瞻 Docker 通过 Cgroup 来控制容器使用的资源配额&#xff0c;包括 CPU、内存、磁盘三大方面&#xff0c; 基本覆盖了常见的资源配额和使用量控制。 Cgroup 是 ControlGroups 的缩写&#xff0c;是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如 CPU、…

uni-app 接口封装,token过期,自动获取最新的token

一、文件路径截图 2、新建一个文件app.js let hosthttp://172.16.192.40:8083/jeecg-boot/ //本地接口 let myApi {login: ${host}wx/wxUser/login, //登录 } module.exports myApi 3、新建一个文件request.js import myApi from /utils/app.js; export const r…

【云原生】Docker的镜像创建

目录 1&#xff0e;基于现有镜像创建 &#xff08;1&#xff09;首先启动一个镜像&#xff0c;在容器里做修改 ​编辑&#xff08;2&#xff09;然后将修改后的容器提交为新的镜像&#xff0c;需要使用该容器的 ID 号创建新镜像 实验 2&#xff0e;基于本地模板创建 3&am…

uniapp上传音频文件到服务器

视频教程地址&#xff1a; 【uniapp录音上传组件&#xff0c;将录音上传到django服务器】 https://www.bilibili.com/video/BV1wi4y1p7FL/?share_sourcecopy_web&vd_sourcee66c0e33402a09ca7ae1f0ed3d5ecf7c uniapp 录制音频文件上传到django服务器保存到服务器 &#xf…