java开发环境配置及问题排查

news2024/9/21 11:14:59

Java程序必须运行在JVM之上,所以,我们第一件事情就是安装JDK。

JDK(Java Development Kit),是Java开发工具包,它提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提 供了JVM和Runtime辅助包,用于解析class文件使其得到运行)。JDK是整个Java的核心,包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库 (rt.jar)。

JRE是Java Runtime Environment的缩写,是Java程序的运行环境。

下载地址:

Java Downloads | Oracle

64位选择x64 Installer版本即可

下载安装可以修改默认的安装位置,不是必须安装再C盘,但是需要记住自己更改的安装位置,因为在后面的环境变量配置中需要用到这个安装位置:比如安装位置选择D:\java\jdk1.9.0

注意问题:安装软件的路径中不能包含中文、空格。

JDK 安装完成之后我们需要去配置 环境变量 。

右击"我的电脑",点击"属性",选择"高级系统设置"

在系统变量中配置

JAVA_HOME:D:\java\jdk1.9.0

 

 在系统的path中配置

path环境变量:
windows操作系统执行命令时所要搜寻的路径 。
告诉系统根据path提供的路径来查找java命令javac(编译器)、java(执行java程序口令)

为什么要配置path:
希望java的开发工具(javac.exe,java.exe)在任何的文件路径下都可以执行成功。

 

D:\java\jdk1.9.0\bin

D:\java\jdk1.9.0\jre\bin

 如此就配置好了java的环境,需要验证下是否配置成功,用cmd进行验证

打开cmd,输入java,提示如下就是配置成功了

 如果在cmd输入java和javac都无反应或是提示java不是内部或外部指令,就是没有配置成功,需要去排查下原因

1、检验jdk是否成功安装到计算机中(可能单单是环境变量出错导致指令无效)

在打开的cmd窗口分别输入java, javac命令验证jdk是否安装成功。

 出现以上提示,表明我们的jdk是安装成功的,所以问题出在环境变量。如果输入java仍然无效,显然,是你的jdk安装失败了,卸载程序后重新安装。

所以下面需要修改环境变量

有些win10不能识别相对路径(%JAVA_HOME%),最好使用绝对路径配置环境变量,也就是直接写D:\java\jdk1.9.0\bin这种绝对路径

还有一点要注意,path中添加的jdk和jre路径要分开写,不要写在同一行。

  • 系统变量中创建JAVA_HOME 变量值:D:\MySoft\jdk (jdk的安装路径,根据自己安装路径填写)
  • 在系统变量path中添加 (jdk,jre的安装路径,根据自己安装路径填写) D:\MySoft\jdk\bin (末尾不用加 ;) D:\MySoft\jdk\jre\bin

创建完,重新打开cmd窗口,输入java和javac验证是否成功

接下来,还是来到环境变量,在系统变量中打开path变量,我们可以看到,在第一行有以下变量值,我们只需将我们的自己配置的jdk路径上移最前头,保存退出,并重启电脑即可,记住,只有重启后path变量值排序才会更新。

 

有些人重装过jdk或装了多个jdk可能会有C:\ProgramData\Oracle\Java\javapath路径,同样只要把自己jdk路径值移到最前端就行了。记住,移动后务必重启电脑。

这两个路径会使我们自己配置的jdk路径不被优先使用,导致找不到java命令。

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

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

相关文章

Java内存模型和线程安全

Java内存模型和线程安全Java内存模型引言volatile关键字synchronized关键字Java线程Java线程安全synchronized锁优化锁优化技巧列举自旋锁锁消除锁粗化具体实现轻量级锁偏向锁Java内存模型 引言 对于多核处理器而言,每个核都会有自己单独的高速缓存,又因为这多个处理器共享同一…

JavaWeb-会话技术

JavaWeb-会话技术 1,会话跟踪技术的概述 对于会话跟踪这四个词,我们需要拆开来进行解释,首先要理解什么是会话,然后再去理解什么是会话跟踪: 会话:用户打开浏览器,访问web服务器的资源,会话建立&#xff…

反射机制.

文章目录概述两个疑问关于java.lang.Class的理解获取Class实例的方式哪些类型可以有Class对象了解类的加载器掌握加载配置文件的另一种方式创建运行时类的对象体会动态性获取运行时类的完整结构调用运行时类的制定结构每日一考动态代理概述 1、反射是动态语言的关键 2、动态语…

使用Docker打包镜像并发布

1、docker介绍 Docker 是一个开源的应用容器引擎,以镜像的形式进行发布。docker的图标是一个大鲸鱼驮着许多集装箱在海上航行。大鲸鱼就是docker,集装箱就是一个个容器。容器是完全使用沙箱机制,相互之间不会有任何接口,每个容器都…

高级Spring之BeanFactory 与 ApplicationContext 的区别

ApplicationContext接口 SpringBootApplication public class A01 {private static final Logger log LoggerFactory.getLogger(A01.class);public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException, IOException {//启动SpringBoot程序…

Python Scipy 显著性检验

Scipy 显著性检验显著性检验(significance test)就是事先对总体(随机变量)的参数或总体分布形式做出一个假设,然后利用样本信息来判断这个假设(备择假设)是否合理,即判断总体的真实情…

Linux基本功系列之userdel命令实战

春节马上要到了,大街上到处都是张灯结彩,喜气洋洋的景象,你们那里也开始了吗? 文章目录一. userdel命令概述二. 语法格式及常用选项语法格式及常用参数三. 参考案例3.1 删除用户但不删除家目录等相关的文件3.2 把用户彻底删除3.3 …

【Linux05-进程控制】进程创建、进程等待、进程退出、进程程序替换(附简易shell实现)

前言 本期分享进程控制的内容。 博主水平有限,不足之处望请斧正! 进程的控制主要分为四点: 进程创建进程退出进程等待进程程序替换 进程创建 怎么创建 通过fork创建。 #fork 是什么 创建子进程的函数。(使用已经介绍过&am…

Python基础学习 -- 概念

一、变量python的变量定义起来比较随意,不用定义数据类型a123b"123"系统会自动识别a为数值,b为字符串二、关键字定义变量名字的时候,要避开下面的关键字,但是可以通过大小写区分,as123;#错误定义As123;print…

阿里云服务器ECS

云服务器 ECS云服务器ECS(Elastic Compute Service)是一种简单高效、处理能力可弹性伸缩的计算服务。帮助您构建更稳定、安全的应用,提升运维效率,降低IT成本,使您更专注于核心业务创新。为什么选择云服务器ECS选择云服…

音频如何分割成两段音频?这些实用方法值得收藏

有些时候,我们从网上下载的音频素材可能会出现体积较大、播放时间长等情况,而我们却只需要其中的一小段。这个时候我们就需要借助一些音频分割软件来将重要的音频片段提取出来,从而有助于缩小音频文件的占比以及存储。那么如何如何分割音频呢…

JVM进修之路(一)程序计数器与虚拟机栈

JVM 定义:JVM:Java Virtual Machine,也就是Java运行时所需要的环境(Java二进制字节码运行时所需要的环境) 好处: 1.java代码一次编写,跨平台运行 2.自动内存管理,垃圾回收 3.数组下标越界检查 4…

千锋Node.js学习笔记

千锋Node.js学习笔记 文章目录千锋Node.js学习笔记写在前面1. 认识Node.js2. NVM3. NPM4. NRM5. NPX6. 模块/包与CommonJS7. 常用内置模块1. url2. querystring3. http4. 跨域jsonpcorsmiddleware(http-proxy-middleware)5. 爬虫6. events7. File System…

Mysql常用命令练习(一)

Mysql常用命令练习(一)一、数据库的三层结构二、数据库2.1、创建数据库2.2、查看、删除数据库2.3、备份和恢复数据库三、表3.1、创建表mysql常用的数据类型(列类型)创建表查看表查看表结构练习3.2、修改表修改表名修改表的字符集添加列修改列删除列练习3…

轻量级网络模型ShuffleNet

在学习ShuffleNet内容前需要简单了解卷积神经网络和MobileNet的相关内容,大家可以去看我之前的一篇博客MobileNet发展脉络(V1-V2-V3),🆗,接下来步入正题~卷积神经网络被广泛应用在图像分类、目标检测等视觉…

易盾sdk引起项目的整体耗时问题?

大家好: 我是烤鸭。今年年初的时候,项目接入易盾sdk之后,随着接口调用次数增多(用到易盾sdk的接口),项目整体性能变差。写篇文章做个复盘记录,其实同事已经写过了,我借鉴部分再拓展一些。 问题描述 突然收…

【JavaEE初阶】第五节.多线程 ( 基础篇 ) 线程安全问题(上篇)

目录 文章目录 前言 一、线程安全的概述 1.1 什么是线程安全问题 1.2 存在线程安全问题的实例 二、线程安全问题及其解决办法 2.1 案例分析 2.2 造成线程不安全的原因 2.3 线程加锁操作解决原子性 问题 ; 2.3.1 什么是加锁 2.3.2 使用 synchronized关键字…

爆品跟卖商家必读:2023年快速入局TikTok选品5大关键

TikTok商业进程一直有在发展,开启东南亚小店,美国小店内邀……有吸引了不少外贸工厂和传统跨境电商卖家等玩家入局。2022年这一年,不管是直播带货,短视频带货,还是广告投流,数据都有新的变化。据报道&#…

Word 允许西文在单词中间换行,没用/无效 终极办法

有时在写论文中,英文的调整相当麻烦,为了节约版面,会设置允许西文在单词中间换行。但有时不希望这样,特别是在复制网上英文时,会出现单词分断换行情况,如何解决: 1.一般办法。 在Word选择要调整…

C规范编辑笔记(十)

往期文章: C规范编辑笔记(一) C规范编辑笔记(二) C规范编辑笔记(三) C规范编辑笔记(四) C规范编辑笔记(五) C规范编辑笔记(六) C规范编辑笔记(七) C规范编辑笔记(八) C规范编辑笔记(九) 正文: 又是新的一年,2023年的第一篇没想到隔了这么久…