【跟小嘉学习JavaWeb开发】第一章 开发环境搭建

系列文章目录

【跟小嘉学习JavaWeb开发】第一章 开发环境搭建

文章目录

  • 系列文章目录
    • @[TOC](文章目录)
  • 前言
  • 一、JDK的下载与安装
    • 1.1、关于JDK的版本问题
  • 二、环境变量配置
    • 2.1、配置 JAVA_HOME、CLASSPATH
    • 2.2、配置path
    • 2.3、启动 cmd
  • 三、编写代码、编译并执行
    • 3.1、编写代码,创建一个 HelloWorld.java 文件
    • 3.2、编译执行
      • 3.2.1、编译:
      • 3.2.2、执行:
      • 3.2.3、编译并执行
  • 四、开发工具使用
    • 4.1、VSCODE(部分公司推荐使用)
      • 4.1.1、VSCODE介绍
      • 4.1.2、VSCODE 插件推荐
    • 4.2、Eclipse
    • 4.3、Idea (公司上推荐使用)

前言

本章节讲解Java开发环境的搭建与使用


一、JDK的下载与安装

1.1、关于JDK的版本问题

目前国内生产环境之中大部分使用的是JDK1.8的版本,但是我们会在后续的课程会重点讲解JDK1.8的内容,同时会讲解其他版本的JDK,例如JDK1.9、JDK11 等特性。

OpenJDK使用的开源的免费的FreeType,可以按照GPLV2许可证使用,Oracle JDK采用了商业实现,JROckit是Oracle的JVM,从Java SE7开始,HotSpot和JRockit合并为一个JVM。

Oracle JDK的下载地址
OpenJDK的下载地址

二、环境变量配置

2.1、配置 JAVA_HOME、CLASSPATH

在JDK1.8以后可以不配置Classpath属性可以由JVM默认设置,该环境变量不会对IDE的环境变量造成影响;

2.2、配置path

Path的配置影响到CMD 或者其他终端的命令行使用,对IDE的使用不够成影响;

2.3、启动 cmd

三、编写代码、编译并执行

3.1、编写代码,创建一个 HelloWorld.java 文件

public class HelloWorld {
   public static void main(String[] args) {
       // 编译处理中文乱码: javac -encoding utf-8 HelloWorld.java
       // 执行 :java HelloWorld
       System.out.println("你好");
   }
}

● 需要注意的是 一个java文件中只能有一个 public class 声明的类,如果声明了两个会编译报错,错误信息如下
HelloWorld.java:9: 错误: 类HelloWorld2是公共的, 应在名为 HelloWorld2.java 的文件中声明

public class HelloWorld2{
       ^
1 个错误

● 一个java文件中可以有多个class 声明,可以没有public class 声明,每个class 对象生成对应一个 *.class 文件
● public class 类名称必须与文件名字一致,否则会编译报错,报错信息如下
HelloWorld.java:1: 错误: 类HelloWorld2是公共的, 应在名为 HelloWorld2.java 的文件中声明

public class HelloWorld2 {
       ^
1 个错误

● 中文输出,控制台乱码的问题,编译时候可以选择字符编码,字符编码要与文件编码一致

javac HelloWorld.java  -encoding utf-8

文件编码可以使用记事本查看,如果编码不一致,编译会报错

HelloWorld.java:3: 错误: 编码utf-8的不可映射字符
       // ??????????????: javac -encoding utf-8 HelloWorld.java
          ^
HelloWorld.java:3: 错误: 编码utf-8的不可映射字符
       // ??????????????: javac -encoding utf-8 HelloWorld.java

上述错误是说明,文件编码 不是utf-8,而你使用了 utf-8 去编译

3.2、编译执行

3.2.1、编译:

javac -encoding utf-8 HelloWorld.java 

3.2.2、执行:

java HelloWorld

3.2.3、编译并执行

javac -encoding utf-8 HelloWorld.java  && java HelloWorld

四、开发工具使用

4.1、VSCODE(部分公司推荐使用)

4.1.1、VSCODE介绍

VSCODE 是微软开发的开源项目,基于Javascript实现,启动快,轻量,所以为了让大家能够了解编程的本质,后续几乎都会在VSCODE编辑器中讲解代码的编写;
vscode 下载地址:

我本人比较喜欢使用命令行工具,基本上都会讲解各种命令行的操作,同时熟悉命令行能够让大家的工作更加高效,并且对学习Linux的使用是非常有帮助的。

4.1.2、VSCODE 插件推荐

● Code Runner 初学者学编程语言推荐使用的插件,但是该插件对中文编码不是很友好;
● Extension Pack for Java ,Java开发者推荐使用的插件;
● ssh 插件:后续为了保证开发者自己电脑上不会太多冲突的编程语言,我们决定采用Docker的形式来完成,这样大家避免出现环境不一致的现象;

4.2、Eclipse

1、创建项目 file 菜单 - 》 new -》 Project
创建项目
2、创建 Java 项目
java项目
3、创建项目界面
创建项目界面
4、file-》new-》class
在这里插入图片描述
5、new class 界面
创建class界面

6、执行

右键-》run as -》java application 或者 ctrl + f11

快捷键功能
alt + /代码提示与自动补全,单个导包
ctrl + 1打开警告或者错误的解决方案
ctrl + 鼠标左键查看源代码
ctrl +/注释或取消注释代码(单行注释 //)
ctrl + shift + /取消多行注释
ctrl + f11执行 程序
f11进入debug
ctrl+shift+o批量导入包、优化导包
ctrl+f查找或替换
ctrl+c复制
ctrl+v粘贴
ctrl+x剪切
ctrl+z撤销
ctrl+a全选
ctrl+s保存
ctrl+o代码大纲
ctrl+shift+r打开资源文件,包括配置文件、代码文件
alt + ↑ 或 alt+↓移动光标所在的或者选中的代码行
ctrl + t查看某个类继承树
ctrl + + 或 ctrl + -放大或者缩小字体
ctrl+shift+f格式化代码

4.3、Idea (公司上推荐使用)

目前我们在公司里面推荐使用 社区版IDEA,也有的公司有商业版IDEA可以申请。

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

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

相关文章

输出所有最长公共子序列

输出所有最长公共子序列 什么是最长公共子序列过程讲解完整程序代码(python) 什么是最长公共子序列 在力扣题库中的1143题有一道最长公共子序列,但是那个只是返回最长子序列的长度,而没有输出所有的最长子序列 通过上图中的举例…

Python制作采集直播弹幕小软件

嗨喽,大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.8 Pycharm模块使用: import requests >>> pip install requests import time import tkinter👇 👇 👇 更多精彩机密、教程,尽在下方,…

AVL树详解

目录 AVL树的概念 旋转的介绍 单旋转 双旋转 旋转演示 具体实现 通过高度判断的实现 通过平衡因子判断的实现 AVL树的概念 AVL树是一种自平衡的平衡二叉查找树,它是一种高效的数据结构,可以在插入和删除节点时保持树的平衡,从而保证…

vivado时序分析-1

AMD Vivado ™ 集成设计环境 (IDE) 提供了多项报告命令 , 用于验证设计是否满足所有时序约束 , 以及是否准备好加载到应用开发板上。“Report Timing Summary ” ( 时序汇总报告 ) 属于时序验收报告 , 等同于 ISE De…

uniapp中picker 获取时间组件如何把年月日改成年月日默认时分秒为00:00:00

如图所示,uniapp中picker组件的日期格式为: 但后端要 2023-11-08 00:00:00格式 如何从2023-11-08转化为 2023-11-08 00:00:00:👇 const date new Date(e.detail.value);//"2023-11-17" date.setHours(0, 0, 0); // 2…

springboot actuator:开放全部(部分)端点、端点映射、端点保护

目录 开放全部端点(不安全): 开放部分端点 端点映射 端口保护 1、 添加Spring Security依赖: 2、Spring Security简单配置类: 3、application.yml配置规则 4、写一个简单的controller 5、简单登录页面 目…

【hcie-cloud】【2】华为云Stack解决方案介绍、缩略语整理 【下】

文章目录 华为文档获取方式、云计算发展背景、坚实基座华为云Stack,政企只能升级首选智能数据湖仓一体,让业务洞见更准,价值兑现更快MRS:一个架构可构建三种数据湖,业务场景更丰富离线数据湖:提供云原生、湖…

强化您的应用安全,从app加固开始

强化您的应用安全,从app加固开始 目录 强化您的应用安全,从app加固开始 摘要 引言 1. 加密和数据保护 2. 代码混淆 3. 防止反编译 4. 安全测试 5. 更新和补丁 6. 权限控制 7. 输入验证和输出过滤 8. 日志记录和监控 9. 安全设计和架构 10.…

GoLong的学习之路(二十二)进阶,语法之并发(go最重要的特点)(channel的主要用法)

这一章是接上一章内容继续,上一章说到协程也就是goroutine,如何使用它,这一张是讲一种数据结构。当然这个章节的数据结构非常重要。可以说这个数据结构就是为了方便协程,才制作出来的。 单纯地将函数并发执行是没有意义的。函数与…

echart宽度100px原因(解决el-tabs里的echarts图表宽度不自适应,只有100px问题)

目录 问题描述产生原因处理方法1.使用echart 的API —— resize()2.使用 v-if 总结 问题描述 项目中在el-tabs下面使用了图表,发现图表的宽度始终只有100px 产生原因 首先echart初始化的组件宽度设置了width: 100%,那么本来这个时候,echar…

Flutter android和ios闪屏页配置

一.概念理解 闪屏页 1.当点击app开始的一瞬间,所呈现出来的页面就是闪屏页。 2.为什么会有闪屏也,由于app启动需要加载代码,这个过程需要耗时,在没有加载完成之前,是看不到app真正的页面。所以app在没有完全加载完时…

计算摄像技术03 - 数字感光器件

一些计算摄像技术知识内容的整理:感光器件的发展过程、数字感光器件结构、数字感光器件的指标。 目录 一、感光器件的发展过程 二、数字感光器件结构 (1)CCD结构 ① 微透镜 ② 滤光片 ③ 感光层 电荷传输模式 (2)CMOS结…

nigix安装以及遇到的问题

Nginx配置 nginx双击闪退如何解决 修改配置文件 端口冲突,将端口改为90 Nginx 动静分离(前端的代码单独运行) 将html文件夹里面的东西放到nginx里面的HTMl文件夹里面 负载均衡(轮询,权重,哈希&#xff…

三数之和(双指针)

15. 三数之和 - 力扣(LeetCode) 题目描述 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三…

企业如何落地搭建商业智能BI系统

随着新一代信息化、数字化技术的应用,引发了新一轮的科技革命,现代化社会和数字化的联系越来越紧密,数据也变成继土地、劳动力、资本、技术之后的第五大生产要素,这一切都表明世界已经找准未来方向,前沿科技也与落地并…

数据库 高阶语句

目录 数据库 高阶语句 使用select 语句,用order by来对进行排序 区间判断查询和去重查询 如何对结果进行分组查询group by语句 limit 限制输出的结果记录,查看表中的指定行 通配符 设置别名:alias 简写就是 as 使用select 语句&#x…

CVE-2023-0179-Nftables整型溢出

前言 Netfilter是一个用于Linux操作系统的网络数据包过滤框架,它提供了一种灵活的方式来管理网络数据包的流动。Netfilter允许系统管理员和开发人员控制数据包在Linux内核中的处理方式,以实现网络安全、网络地址转换(Network Address Transl…

19、Flink 的Table API 和 SQL 中的自定义函数及示例(3)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

2023年破圈:盘点11个新零售商业模式,永远不再打商业价格战

2023年破圈:盘点11个新零售商业模式,永远不再打商业价格战 前沿:纵观今年互联网各种类型项目,基本都是又短又快,但依然也有风靡的短跑冠军,那么互联网的项目能否跑的长久,是否是商业模式的原因&…

C++ —— map 和 multimap

一、map 1.介绍 1. map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元 素。 2. 在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同&am…