【重学Android】02.Java环境配置的一些分享

背景说明

其实只是学习Android的话,只要下载好Android Studio开发工具,是自带JDK环境的,所以不需要再额外去进行配置,我之所以还要进行单独配置,是因为我其他的工具需要Java的环境,而且我目前用的是JDK 12,因此还是要配置下。

然后就去看了下配置Classpath的路径,发现一搜基本全是差不多的教程,都是配置这样的路径【.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;】

本来配置好了也就可以了,但是我又多了个心眼,我去这个目录下看了下是不是有这两个文件,结果发现没有,然后我就不淡定了。

因为搜到的教程都是这么配置的,但是现在我发现JDK 12下没有这个文件,是不是我装错了?

最后一翻查找后发现,在安装JDK 12版本后,lib目录下缺少dt.jartools.jar文件,这是JDK 12版之后的正常现象,无需担忧。

具体原因如下:

原因解析

  1. JDK模块化改革
    从JDK 9开始,Oracle对Java进行了模块化改造,移除了传统的rt.jartools.jardt.jar等文件,改为更高效的模块化存储方式(位于jmods目录)。这也是为什么JDK 12及更高版本中不再包含这些文件的根本原因。

  2. JRE生成方式变更
    JDK 12默认不包含独立的JRE文件夹,需通过命令行手动生成,而dt.jartools.jar的功能已被整合到模块化系统中,不再需要单独配置。

解决办法

1. 环境变量配置调整
  • 无需配置CLASSPATH
    从JDK 9开始,无需在CLASSPATH中添加dt.jartools.jar,直接省略相关配置即可。
    推荐的环境变量设置如下:

    JAVA_HOME = C:\Program Files\Java\jdk-12.0.1
    Path = %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
    
  • 生成JRE(可选)
    若需JRE,可在JDK安装目录下执行命令手动生成:

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

    注意需以管理员权限运行命令行。

2. 验证安装
  • 打开命令提示符,输入以下命令验证:
    java -version   # 查看Java版本
    javac -version  # 查看编译器版本
    
    若返回版本信息(如12.0.1),则配置成功。
3. 避免安装路径覆盖

若使用旧版本JDK(如JDK 8),需确保安装时JDK和JRE路径不同,否则会导致文件覆盖。但此问题不适用于JDK 12及以上版本。

总结

介于此也发现一个问题,很多以前的教程由于很多原因,在如今搜索引擎下,还是会作为优先推荐展示出来,从而导致我们有时候参照了早已过时的环境配置。

最后,JDK 12的dt.jartools.jar缺失是版本升级后的正常现象,无需重新安装或修复。只需按新规范配置环境变量,并利用模块化特性即可。若需兼容旧项目,可考虑降级至JDK 8并注意安装路径分离。

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

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

相关文章

Linux 网络编程:select、poll 与 epoll 深度解析 —— 从基础到高并发实战

一、IO 多路复用:解决并发 IO 的核心技术 在网络编程中,当需要同时处理大量客户端连接时,传统阻塞式 IO 会导致程序卡在单个操作上,造成资源浪费。IO 多路复用技术允许单线程监听多个文件描述符(FD)&#…

制作你的时间管理“局”#自制软件,5款AI编程对比测试

玩 AI 编程最有意思的地方,就是当你有想法的时候,可以随时测试、把想法具体化,甚至产品化。今天我们制作一个事件管理器,用来量化我们每天的时间安排,提高时间的利用率,提升生产力。 同样的一组 prompt &am…

大数据系列 | 详解基于Zookeeper或ClickHouse Keeper的ClickHouse集群部署--完结

大数据系列 | 详解基于Zookeeper或ClickHouse Keeper的ClickHouse集群部署 1. ClickHouse与MySQL的区别2. 在群集的所有机器上安装ClickHouse服务端2.1. 在线安装clickhouse2.2. 离线安装clickhouse 3. ClickHouse Keeper/Zookeeper集群安装4. 在配置文件中设置集群配置5. 在每…

宏碁笔记本电脑怎样开启/关闭触摸板

使用快捷键:大多数宏碁笔记本可以使用 “FnF7” 或 “FnF8” 组合键来开启或关闭触摸板,部分型号可能是 “FnF2”“FnF9” 等。如果不确定,可以查看键盘上的功能键图标,一般有触摸板图案的按键就是触摸板的快捷键。通过设备管理器…

使用Mybaitis-plus提供的各种的免写SQL的Wrapper的使用方式

文章目录 内连接JoinWrappers.lambda和 new MPJLambdaWrapper 生成的MPJLambdaWrapper对象有啥区别?LambdaQueryWrapper 和 QueryWrapper的区别?LambdaQueryWrapper和MPJLambdaQueryWrapper的区别?在作单表更新时建议使用:LambdaU…

基于微信小程序的走失儿童帮助系统-项目分享

基于微信小程序的走失儿童帮助系统-项目分享 项目介绍项目摘要管理员功能图用户功能图系统功能图项目预览首页走失儿童个人中心走失儿童管理 最后 项目介绍 使用者:管理员、用户 开发技术:MySQLJavaSpringBootVue 项目摘要 本系统采用微信小程序进行开…

P3916 图的遍历

P3916 图的遍历 题目来源-洛谷 题意 有向图中,找出每个节点能访问到的最大的节点 思路 每个节点的最大节点,不是最长距离,如果是每个节点都用dfs去找最大值,显然1e6*1e6 超时了,只能60分从第一个节点开始遍历&…

掌握常见 HTTP 方法:GET、POST、PUT 到 CONNECT 全面梳理

今天面试还问了除了 get 和 post 方法还有其他请求方法吗,一个都不知道,这里记录下。 🌐 常见 HTTP 请求方法一览 方法作用描述是否幂等是否常用GET获取资源,参数一般拼接在 URL 中✅ 是✅ 常用POST创建资源 / 提交数据&#xff…

裸金属服务器的应用场景有哪些?

随着云计算技术不断发展,裸金属服务器作为一台既具有传统物理服务器特点的硬件设备,还具备云计算技术的服务器化服务功能,是硬件和软件相结合的网络设备,逐渐被越来越多的企业所关注,那么,裸金属服务器的应…

【得物】20250419笔试算法题

文章目录 前言第一题1. 题目描述2. 思路解析3. AC代码 第二题1. 题目描述2. 思路解析3. AC代码 第三题1. 题目描述2. 思路解析3. AC代码 前言 三道题目都比较简单,大家都可以试着做一下。 第一题 1. 题目描述 题目链接:矩阵变换 2. 思路解析 按题…

明远智睿2351开发板四核1.4G Linux处理器:驱动创新的引擎

在科技日新月异的今天,创新成为了推动社会进步的核心动力。而在这场创新的浪潮中,一款性能卓越、功能全面的处理器无疑是不可或缺的引擎。今天,我们介绍的这款四核1.4G处理器搭配Linux系统的组合,正是这样一款能够驱动未来创新的强…

Oracle Database Resident Connection Pooling (DRCP) 白皮书阅读笔记

本文为“Extreme Oracle Database Connection Scalability with Database Resident Connection Pooling (DRCP)”的中文翻译加阅读笔记。觉得是重点的就用粗体表示了。 白皮书版本为March 2025, Version 3.3,副标题为:Optimizing Oracle Database resou…

VS Code + GitHub:高效开发工作流指南

目录 一、安装 & 基本配置 1.下载 VS Code 2.安装推荐插件(打开侧边栏 Extensions) 3.设置中文界面(可选) 二、使用 VS Code 操作 Git/GitHub 1.基本 Git 操作(不输命令行!) 2.连接 GitHub(第一次使用) 三、克隆远程仓库到 VS Code 方法一(推荐): 方…

【LLM】llama.cpp:合并 GGUF 模型分片

GGUF(GPT-Generated Unified Format)是一种专为大规模语言模型设计的二进制文件格式,支持将模型分割成多个分片(*-of-*.gguf)。当从开源社区(如 HuggingFace 或 ModelScope)下载量化模型时&…

Ubuntu 系统下安装和使用性能分析工具 perf

在 Ubuntu 系统下安装和使用性能分析工具 perf 的步骤如下: 1. 安装 perf perf 是 Linux 内核的一部分,通常通过安装 linux-tools 包获取: # 更新软件包列表 sudo apt update# 安装 perf(根据当前内核版本自动匹配) …

Buffer of Thoughts: Thought-Augmented Reasoningwith Large Language Models

CODE: NeurIPS 2024 https://github.com/YangLing0818/buffer-of-thought-llm Abstract 我们介绍了思想缓冲(BoT),一种新颖而通用的思想增强推理方法,用于提高大型语言模型(大型语言模型)的准确性、效率和鲁棒性。具体来说,我们提出了元缓冲…

Java面试中问单例模式如何回答

1. 什么是单例模式? 单例模式(Singleton Pattern)是一种设计模式,确保某个类在整个应用中只有一个实例,并且提供全局访问点。它有以下特点: 确保只有一个实例。提供全局访问点。防止多次实例化,节约资源。2. 如何实现单例模式? 单例模式有多种实现方式,以下是最常见…

实战华为1:1方式1 to 1 VLAN映射

本文摘自笔者于2024年出版,并得到广泛读者认可,已多次重印的《华为HCIP-Datacom路由交换学习指南》。 华为设备的1 to 1 VLAN映射有1:1和N :1两种方式。1:1方式是将指定的一个用户私网VLAN标签映射为一个公网VLAN标签,是一种一对一的映射关系…

认识Vue

认识Vue 文章目录 认识Vue一、vue是什么二、Vue核心特性数据驱动(MVVM)组件化指令系统 三、Vue跟传统开发的区别1. **开发模式:MVVM vs 模板驱动**2. **组件化开发**3. **状态管理**4. **路由管理**5. **构建与工程化**6. **性能优化**7. **学习曲线**8.…

iOS中使用AWS上传zip文件到Minio上的oss平台上

1. 集成AWS相关库(千万不要用最新的版本,否则会出现风格化虚拟路径,找不到主机名) pod AWSS3, ~> 2.10.0 pod AWSCore, ~> 2.10.0 2. 编写集成的相关代码 - (void)uploadFileToMinIO {NSString *endPoint "http://…