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

Java入门:环境搭建与第一个HelloWorld程序

一、环境搭建前的准备

1. JDK vs JRE的区别

  • JRE(Java Runtime Environment):只能运行Java程序
  • JDK(Java Development Kit):包含JRE + 开发工具(javac/java等)
    结论:开发必须安装JDK

2. 下载JDK(以JDK17为例)

  • 官网地址:Oracle JDK下载
  • 社区替代方案:OpenJDK(推荐Adoptium版本)
  • 避坑指南
    • 优先选择LTS(长期支持版本):JDK8/11/17
    • 确认操作系统位数(32位/64位)

二、JDK安装与环境变量配置(Windows/Mac双平台)

Windows系统

1. 安装JDK
  • 双击下载的.exe文件,安装路径不要含中文或空格(建议C:\dev\jdk-17
2. 配置环境变量(重点!)
  1. 右键【此电脑】→【属性】→【高级系统设置】→【环境变量】
  2. 新建系统变量
    • 变量名:JAVA_HOME
    • 变量值:JDK安装路径(如C:\dev\jdk-17
  3. 修改Path变量
    • 添加两条记录:
      • %JAVA_HOME%\bin
      • %JAVA_HOME%\jre\bin
3. 验证安装

打开CMD,输入命令:

java -version  
javac -version  

✅ 出现版本号即成功(示例输出):

java version "17.0.5" 2022-10-18 LTS  
Java(TM) SE Runtime Environment (build 17.0.5+9-LTS-191)  

Mac系统

1. 使用Homebrew安装(推荐)
brew install openjdk@17  
2. 配置环境变量

编辑~/.zshrc文件:

echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc  
source ~/.zshrc  

三、第一个Java程序:HelloWorld

1. 使用记事本/VSCode编写代码

创建文件HelloWorld.java,输入以下代码:

public class HelloWorld {  public static void main(String[] args) {  System.out.println("Hello, CSDN!");  }  
}  

注意

  • 类名必须与文件名完全一致(区分大小写)
  • 主方法签名不可修改

2. 编译与运行

# 编译(生成HelloWorld.class字节码文件)  
javac HelloWorld.java  # 运行  
java HelloWorld  

✅ 输出结果:

Hello, CSDN!  

四、常见问题与解决方法

  1. 错误:‘javac’ 不是内部命令

    • 原因:环境变量配置错误
    • 解决:检查JAVA_HOMEPath是否配置正确
  2. 错误:找不到或无法加载主类

    • 原因:类名与文件名不一致 或 .class文件未生成
    • 解决:重新编译并检查类名
  3. 中文乱码问题

    • 在编译时指定编码:
    javac -encoding UTF-8 HelloWorld.java  
    

五、IDE推荐(附快速配置)

  1. IntelliJ IDEA(推荐)
    • 社区版免费,创建项目时自动识别JDK
  2. VS Code
    • 安装插件:Extension Pack for Java

相关文章:

Java入门:环境搭建与第一个HelloWorld程序

一、环境搭建前的准备 1. JDK vs JRE的区别 JRE(Java Runtime Environment):只能运行Java程序JDK(Java Development Kit):包含JRE 开发工具(javac/java等) ❗ 结论:开…...

PDF处理控件Aspose.PDF,如何实现企业级PDF处理

PDF处理为何成为开发者的“隐形雷区”? “手动调整200页PDF目录耗时3天,扫描件文字识别错误导致数据混乱,跨平台渲染格式崩坏引发客户投诉……” 作为开发者,你是否也在为PDF处理的复杂细节消耗大量精力?Aspose.PDF凭…...

大白话如何利用 CSS 实现一个三角形?原理是什么?

大白话如何利用 CSS 实现一个三角形?原理是什么? 答题思路 先说明实现三角形的方法基础:即利用 CSS 中元素的边框特性来构建三角形,让读者对整体思路有个初步概念。详细阐述具体的实现步骤:包括设置元素的基本样式&a…...

js操作字符串的常用方法

1. 查找和截取​​​​​​​ 1.1 indexOf 作用:查找子字符串在字符串中首次出现的位置。 是否改变原字符串:不会改变原字符串。 返回值:如果找到子字符串,返回其起始索引(从 0 开始);如果未…...

PostgreSQL 如何有效地处理数据的加密和解密

对安全级别要求较高的项目,对敏感数据都要求加密保存。 在 PostgreSQL 中处理数据的加密和解密可以通过多种方式实现,以确保数据的保密性和安全性。 我这里提供几种常见的方法。 一、使用 pgcrypto 扩展 pgcrypto 是 PostgreSQL 中一个常用的扩展&am…...

《2025年软件测试工程师面试》消息队列面试题

消息队列 消息队列(Message Queue,简称 MQ)是一种应用程序之间的通信方法。 基本概念 消息队列是一种先进先出(FIFO)的数据结构,它允许一个或多个消费者从队列中读取消息,也允许一个或多个生产者…...

大数据学习(55)-BI工具数据分析的使用

&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦&#x1f91…...

原生android 打包.aar到uniapp使用

1.原生安卓里面引入uniapp官方提供的包文件: uniapp-v8-release.aar 2.提供uniapp调用的接口,新建类文件继承UniModule, package com.dermandar.panoramal;import com.scjt.lib.certlib;import io.dcloud.feature.uniapp.annotation.UniJSM…...

解锁MacOS开发:环境配置与应用开发全攻略

✨✨✨这里是小韩学长yyds的BLOG(喜欢作者的点个关注吧) ✨✨✨想要了解更多内容可以访问我的主页 小韩学长yyds-CSDN博客 目录 引言 一、MacOS 开发环境配置 (一)必备工具安装 (二)集成开发环境(IDE)选…...

Aruco 库详解:计算机视觉中的高效标记检测工具

1. 引言:Aruco 在计算机视觉中的重要性 在计算机视觉领域,标记(Marker)检测和识别是许多应用的基础,包括 机器人导航、增强现实(AR)、相机标定(Calibration)以及物体跟踪…...

第005文-模拟入侵网站实现0元购

1、部署导入靶场,部署购物网站 首先在虚拟机中新增一个centos虚拟机,在上面部署一套完整的购物网站,使用mysql数据库,访问端口是80。这个新增的centos虚拟机就是我们的靶场。购物网站在网上随便找一套开源的部署即可。 2、在网站…...

unity3d 背景是桌面3d数字人,前面是web的表单

是可以实现的,但涉及多个技术栈的结合,包括 Unity3D、Web 技术(HTML、JavaScript)、以及可能的 WebGL 或 WebRTC 技术。大致有以下几种实现方案: 方案 1:Unity 作为独立应用(桌面端&#xff0…...

23种设计模式简介

一、创建型(5种) 1.工厂方法 总店定义制作流程,分店各自实现特色披萨(北京店-烤鸭披萨,上海店-蟹粉披萨) 2.抽象工厂 套餐工厂(家庭装含大披萨薯条,情侣装含双拼披萨红酒&#…...

淘宝关键字搜索接口爬虫测试实战指南

在电商数据分析和市场研究中,通过关键字搜索获取淘宝商品信息是一项重要任务。淘宝开放平台提供了 item_search 接口,允许开发者通过关键字搜索商品,并获取商品列表及相关信息。本文将详细介绍如何设计并测试一个基于该接口的爬虫程序&#x…...

IntelliJ IDEA 中配置 Groovy

在 IntelliJ IDEA 中配置 Groovy 环境可以分为以下几个步骤 1. 安装 Groovy 插件 步骤: 打开 IntelliJ IDEA,进入菜单栏:File → Settings(Windows/Linux)或 IntelliJ IDEA → Preferences(Mac&#xff0…...

【Linux 22.4 ubuntu 安装cuda12.1 完整方案】

下载cuda12.1 官网网址 wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run sudo sh cuda_12.1.1_530.30.02_linux.run!import! 如果已经安装驱动,则不要选择dirver那项 添加环境变量 vim ~/.b…...

使用AI整理知识点--WPF动画核心知识

一、WPF动画基础 1、动画本质 通过随时间改变依赖属性值实现视觉效果(如位置、透明度、颜色等)。 依赖属性必须支持 DependencyProperty,且需是可动画的(如 Double, Color, Point 等)。 2、动画三要素 起始值 (Fr…...

HTML前端手册

HTML前端手册 记录前端框架在使用过程中遇到的各种问题和解决方案,供后续快速进行手册翻阅使用 文章目录 HTML前端手册1-前端框架1-TypeScript框架2-CSS框架 2-前端Demo1-Html常用代码 2-知云接力3-Live2D平面动画 3-前端运维1-NPM版本管理 1-前端框架 1-TypeScrip…...

风控模型算法面试题集结

特征处理 1. 特征工程的一般步骤什么?什么是特征迭代 特征工程一般包含: 数据获取,分析数据的可用性(覆盖率,准确率,获取容易程度)数据探索,分析数据业务含义,对特征有一个大致了解,同时进行数据质量校验,包含缺失值、异常值和一致性等;特征处理,包含数据处理和…...

利用 requestrepo 工具验证 XML外部实体注入漏洞

1. 前言 在数字化浪潮席卷的当下,网络安全的重要性愈发凸显。应用程序在便捷生活与工作的同时,也可能暗藏安全风险。XXE(XML外部实体)漏洞作为其中的典型代表,攻击者一旦利用它,便能窃取敏感信息、掌控服务…...

引领变革!北京爱悦诗科技有限公司荣获“GAS消费电子科创奖-产品创新奖”!

在2025年“GAS消费电子科创奖”评选中,北京爱悦诗科技有限公司提交的“aigo爱国者GS06”,在技术创新性、设计创新性、工艺创新性、智能化创新性及原创性五大维度均获得评委的高度认可,荣获“产品创新奖”。 这一奖项不仅是对爱悦诗在消费电子…...

MySQL JOIN 与子查询深度对比:原理、性能陷阱与优化策略

1. 基础概念:JOIN 与子查询的本质区别 1.1 JOIN 的核心作用 目标:直接关联两个表的行,通过匹配条件(如 ON 或 USING)合并数据。典型场景:需要同时获取两个表的字段(如 SELECT A.col, B.col FROM A JOIN B)。执行逻辑: 数据库一次性处理两表关系,优化器可能选择 Nest…...

稀疏注意力:打破Transformer计算瓶颈,实现高效长序列建模

引言:Transformer的辉煌与困境 近年来,Transformer凭借其强大的自注意力机制(Self-Attention),在自然语言处理、图像识别等领域大放异彩。然而,传统自注意力机制要求模型计算输入序列中所有位置对之间的关联…...

PTA 7-8 哈利·波特的考试

题目描述 哈利波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是 haha,将老鼠变成鱼的魔咒是 hehe 等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如 ahah 可以将老鼠变…...

纯html文件实现目录和文档关联

目录结构 效果图 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>项目结题报告</title><style lang"scss">::-webkit-scrollbar {width: 6px;height: 6px;}::-webkit-scro…...

共绘智慧升级,看永洪科技助力由由集团起航智慧征途

在数字化洪流汹涌澎湃的当下&#xff0c;企业如何乘风破浪&#xff0c;把握转型升级的黄金机遇&#xff0c;已成为所有企业必须直面的时代命题。由由集团&#xff0c;作为房地产的领航者&#xff0c;始终以前瞻视野引领变革&#xff0c;坚决拥抱数字化浪潮&#xff0c;携手数字…...

如何搭建个人静态住宅IP:从零开始

你好&#xff01;今天我们将一起探索如何从头开始搭建个人静态住宅IP。无论您是为了远程办公、在线教育还是游戏加速&#xff0c;静态住宅IP都能带给您更稳定的网络体验。 一、准备阶段 1. 明确需求 首先&#xff0c;您需要清楚自己为什么需要静态住宅IP。可能是为了实现远程…...

《打造视频同步字幕播放网页:从0到1的技术指南》

《打造视频同步字幕播放网页&#xff1a;从0到1的技术指南》 为什么要制作视频同步字幕播放网页 在数字化信息飞速传播的当下&#xff0c;视频已然成为内容输出与获取的核心载体&#xff0c;其在教育、娱乐、宣传推广等诸多领域发挥着举足轻重的作用 。制作一个视频同步字幕播…...

自学嵌入式第27天------TCP和UDP,URL爬虫

1. TCP和UDP区别 **TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;**是两种主要的传输层协议&#xff0c;它们在数据传输方式上有显著区别&#xff1a; 连接性&#xff1a; TCP是面向连接的协议&#xff0c;通信前需通过三次握手建立连…...

C++ 学生成绩管理系统

一、项目背景与核心需求 成绩管理系统是高校教学管理的重要工具,本系统采用C++面向对象编程实现,主要功能模块包括: 学生信息管理(学号/姓名/3门课程成绩) 成绩增删改查(CRUD)操作 数据持久化存储 统计分析与报表生成 用户友好交互界面 二、系统架构设计 1. 类结构设计 …...