当前位置: 首页 > news >正文

【跟小嘉学习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 HelloWorldSystem.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可以申请。

相关文章:

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

系列文章目录 【跟小嘉学习JavaWeb开发】第一章 开发环境搭建 文章目录 系列文章目录[TOC](文章目录) 前言一、JDK的下载与安装1.1、关于JDK的版本问题 二、环境变量配置2.1、配置 JAVA_HOME、CLASSPATH2.2、配置path2.3、启动 cmd 三、编写代码、编译并执行3.1、编写代码&…...

CSS语法、选择器、属性

1.css语法 * 格式:选择器 {属性名1:属性值1;属性名2:属性值2;...}* 选择器:筛选具有相似特征的元素* 注意:* 每一对属性需要使用;隔开,最后一对属性可以不加 2.选择器:筛选具有相似特征的元素 * 分类:1. 基…...

深度学习读取txt训练数据绘制参数曲线图的方法

有一些深度学习模型是并不像yolo系列那样最终输出相应的参数图,有很多训练形成了一个训练log文件,于是需要读取log文件中的内容并绘制成曲线图。 如下实例,有一个log文件的部分截图,需要将其读取出来并绘制曲线图 废话不多说&…...

VB.NET—DataGridView控件教程详解

目录 前言: 过程: 第一步: 第二步: 第三步: 第四步: 第五步: 番外篇: 总结: 前言: DataGridView是.NET FormK中的一个Windows窗体控件,它提供了一个可视化的表格控件,允许用户以表格形式显示和编辑数据。它通常用于显示和编辑数据库…...

MCU测试科普|如何进行MCU芯片测试,具体流程是什么?

MCU芯片测试系统是一种专门用于检测MCU芯片性能和质量的综合性设备。它通常由硬件和软件两部分组成,硬件包括测试仪器、适配器、测试夹具等,用于连接被测MCU芯片和测试机,实现高效高精度的测试。软件部分通常包括测试程序、测试管理软件等&am…...

单向循环代码实现cpp

// 单向循环链表 class CircleLink { public:CircleLink(){head_ new Node();tail_ head_;head_->next_ head_;}~CircleLink(){Node* p head_->next_;while (p ! head_){head_->next_ p->next_;delete p;p head_->next_;}delete head_;}public:// 尾插法 …...

【原创】java+jsp+servlet简单图书管理系统设计与实现

摘要: 图书管理系统是一个专门针对图书馆管理而设计的系统,它可以帮助图书管理员有效的对图书进行管理,在图书管理系统的设计中,首先要考虑的是系统的需求分析,该系统的设计与实现涉及多个方面,包括数据库…...

JVM之jinfo虚拟机配置信息工具

jinfo虚拟机配置信息工具 1、jinfo jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机的各项参数。 使用jps -v 可以查看虚拟机启动时显示指定的参数列表,但是如果想知道未被显示指定的参数的系统默认值,除 …...

软件测试|PO设计模式在 UI 自动化中的实践

PO的思想最早是2013年由IT大佬Martin Flower提出的:https://martinfowler.com/bliki/PageObject.html 没错,就是他 — 没错,就是他 — 在他的文章里有这样一张经典样图,图片中展示了测试代码中直接操作HTML元素和使用PO模式将page对象封装成…...

如何上传自己的Jar到Maven中央仓库

在项目开发过程中,我们常常会使用 Maven 从仓库拉取开源的第三方 Jar 包。本文将带领大家将自己写好的代码或开源项目发布到 Maven中央仓库中,让其他人可以直接依赖你的 Jar 包,而不需要先下载你的代码后 install 到本地。 注册帐号 点击以…...

智能井盖传感器功能,万宾科技产品介绍

在国家治理方面,对社会的治理是一个重要的领域,一定要在推进社会治理现代化过程中提高市政府的管理和工作能力,推动社会拥有稳定有序的发展。在管理过程中对全市井盖进行统一化管理,可能是市政府比较头疼的难题,如果想…...

洛谷P4185 离线+并查集

好题&#xff0c;发现没有强制在线&#xff0c;可以离线操作 排序之后带集合点数的并查集就好了 #include<bits/stdc.h> using namespace std; const int N 1e510; int n,m; int p[N],sz[N];int find(int x){if(x!p[x])p[x] find(p[x]);return p[x]; } struct Node{in…...

遇到java.security.AccessControlException:access denied怎么办?

今天工作中遇到了如下报错&#xff0c;记录一下解决方案。 目录 问题 分析 结论 问题 这个问题出现在openjdk8启动网页端Java应用。 Java Exception:java.security.AccessControlException:access denied("java.net.SocketPermission""22.188.130.11:9000…...

c++对接CAT1400

最近工作中遇到需要对接1400协议,网上搜索不到c/c++的实现,所以记录一下自己的实现。 第一步注册: 1400是在http摘要认证的基础上做的,所以要去了解http摘要认证的流程 说明: 1.视图库通过用户分配,手动分配username,password给三方对接程序 2.三方对接程序第一次请求由…...

Linux基础【Linux知识贩卖机】

偶尔的停顿和修整&#xff0c;对于人生是非常必要的。 --随记 文章目录 Linux目录目录结构磁盘分区相关命令 相对路径和绝对路径 文件权限用户分类umask创建文件权限计算方法粘滞位 总结 Linux目录 目录结构 Linux 操作系统采用了一种层次化的目录结构&#xff0c;常被称为标…...

CSS 边框、轮廓线

一、CSS边框&#xff1a; CSS边框属性允许指定一个元素边框的样式和颜色。 1&#xff09;、边框样式&#xff1a;border-style属性用来定义边框的样式&#xff0c;border-style值&#xff1a; 2&#xff09;、边框宽度&#xff1a;border-width属性用于指定边框宽度。指定变宽…...

Transformer架构 完整的处理流程

Transformer 是由多层的 Encoder 和 Decoder 构成的。每一层的 Encoder 和 Decoder 都包含了多头自注意力机制&#xff08;Multi-head Self Attention&#xff09;、前馈神经网络&#xff08;Feed Forward&#xff09;和添加及归一化&#xff08;Add & Norm&#xff09;。特…...

git and svn 行尾风格配置强制为lf

git CLI配置&#xff1a; // 提交时转换为LF&#xff0c;检出时转换为CRLF git config --global core.autocrlf true // 提交时转换为LF&#xff0c;检出时不转换 git config --global core.autocrlf input // 提交检出均不转换 git config --global core.autocrlf f…...

达梦数据库答案

1、 创建数据库实例&#xff0c;到/dm8/data下&#xff0c;数据库名&#xff1a;DEMO&#xff0c;实例名DEMOSERVER&#xff08;10分&#xff09; [dmdbadmServer ~]$ cd /dm8/tool [dmdbadmServer tool]$ ./dbca.sh1、 簇大小32&#xff0c;页大小16&#xff0c;登录密码&…...

基于SSM的楼房销售系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

Arcana:Elixir原生嵌入式RAG库,一体化智能检索与生成方案

1. 项目概述&#xff1a;一个为Elixir生态量身打造的嵌入式RAG库如果你正在用Elixir和Phoenix构建应用&#xff0c;并且想为它加上一个智能的“知识大脑”&#xff0c;让应用能理解、检索并回答用户基于你私有数据的问题&#xff0c;那么Arcana就是你一直在找的那个工具。它不是…...

5个技巧让TV Bro成为你智能电视的完美浏览器伴侣

5个技巧让TV Bro成为你智能电视的完美浏览器伴侣 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro TV Bro是一款专为Android电视优化的开源智能电视浏览器&#xff0c;通过…...

Docker多阶段构建(Multi-stage Build)介绍(distroless镜像 / slim基础镜像、slim镜像)(FROM指令的本质)胖镜像瘦镜像、COPY . .、FROM命令

文章目录 &#x1f680; 多阶段构建与精简基础镜像&#xff08;distroless / slim&#xff09;实践指南&#x1f4e6; 一、为什么需要优化镜像&#xff1f;❌ 问题 &#x1f9f1; 二、什么是多阶段构建&#xff08;Multi-stage Build&#xff09;&#xff1f;✅ 核心思想&#…...

LSTM中TimeDistributed层的原理与应用实践

1. LSTM网络中的TimeDistributed层深度解析 在序列预测任务中&#xff0c;长短期记忆网络(LSTM)因其强大的时序建模能力而广受欢迎。但许多初学者在使用Keras实现LSTM时&#xff0c;常对TimeDistributed包装器的使用场景感到困惑。本文将用工程实践视角&#xff0c;通过三个渐进…...

告别手动点击:Python脚本化COMSOL多物理场仿真的终极指南

告别手动点击&#xff1a;Python脚本化COMSOL多物理场仿真的终极指南 【免费下载链接】MPh Pythonic scripting interface for Comsol Multiphysics 项目地址: https://gitcode.com/gh_mirrors/mp/MPh 厌倦了在COMSOL图形界面中重复点击菜单、设置参数、等待仿真完成&am…...

HotGo插件化架构:如何让团队开发效率提升300%的实战指南

HotGo插件化架构&#xff1a;如何让团队开发效率提升300%的实战指南 【免费下载链接】hotgo HotGo 是一个基于 vue 和 goframe2.0 开发的全栈前后端分离的开发基础平台和移动应用平台&#xff0c;集成jwt鉴权&#xff0c;动态路由&#xff0c;动态菜单&#xff0c;casbin鉴权&a…...

OmenSuperHub终极指南:免费解锁惠普OMEN游戏本隐藏性能

OmenSuperHub终极指南&#xff1a;免费解锁惠普OMEN游戏本隐藏性能 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度&#xff0c;自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否曾经因为惠普OMEN游戏本的性能限…...

AutoSar存储栈的“隐藏关卡”:从DTC存储到OTA升级,详解NVM和FEE模块的几种高级玩法

AutoSar存储栈的“隐藏关卡”&#xff1a;从DTC存储到OTA升级&#xff0c;详解NVM和FEE模块的几种高级玩法 在汽车电子控制单元&#xff08;ECU&#xff09;开发中&#xff0c;存储管理往往被视为基础设施而缺乏深入探索。但当你面对诊断故障码&#xff08;DTC&#xff09;的实…...

Vue2项目实战:如何基于Element UI封装一个可复用的‘批量排班’日历组件(含完整代码)

Vue2实战&#xff1a;基于Element UI打造高复用排班日历组件 在企业级后台管理系统开发中&#xff0c;排班功能是客服、医疗、制造等行业的共性需求。本文将分享如何基于Vue2和Element UI封装一个支持批量操作、可配置班次类型的日历排班组件&#xff0c;实现跨项目复用。 1. 组…...

SonarQube生产环境部署实录:Docker Compose编排PostgreSQL 12与SonarQube 8.9.10的黄金组合

SonarQube生产环境部署实战&#xff1a;从技术选型到高可用架构设计 在当今快速迭代的软件开发周期中&#xff0c;代码质量管理已成为企业技术栈中不可或缺的一环。作为静态代码分析领域的标杆工具&#xff0c;SonarQube凭借其全面的质量门禁规则、多语言支持以及直观的仪表盘&…...