【Java】IDEA 配置java开发环境(windows)_idea配置java环境-程序员宅基地

技术标签: java  随笔  intellij-idea  windows  

刚才需要临时运行一个java脚本,java还是2、3年前学的,都忘光了。IDEA 2021还在我电脑装着,进去却忘记了怎么配置java环境,这里复习一下。

01 安装 JDK

1.1 下载与安装

JDK中包含了JRE和java开发包(我现在只记得这些名词了):

  • JRE:java运行环境(java runtime environment)又分jvm和java核心的类库。

  • JVM:java虚拟机(java virtual machine)java程序就是在jvm中运行的。

  • java核心类库:JRE提供让程序运行的java库。

到Oracle官网下载JDK(installer):https://www.oracle.com/java/technologies/downloads/#jdk20-windows
在这里插入图片描述
安装:

双击安装程序安装即可,自己设置一下安装目录(我专门用一个盘来安装绝大多数软件)。

解释

这里下载的是JDK,即JDK Development Kit,它包含了java编译器、运行时环境等等部件,很全面,而如果你去java.com下载的64-bit Java forWindows,只是一个jre即运行时环境,允许你运行java程序,但是不能编译,所以我们直接下载JDK即可。

安装后进入文件夹,可以看到:
在这里插入图片描述

其中:

bin:提供 JDK 工具程序,包括 javac、java、javadoc、appletviewer 等可执行程序。
include:存放用于本地访问的文件。
jre:存放 Java 运行环境文件。
lib:存放 Java 类库文件。
src.zip:存放Java 核心平台 API 的源文件归档。
conf:存放JDK的相关配置文件。
jmods:存放了JDK的各种模块。
legal:存放了JDK各模块的授权文档。

注意:新版本的JDK安装工具默认不会安装jre文件(比如上图),需要自行生成jre文件

从JDK 9开始,Oracle不再提供单独的JRE文件夹,而是让用户自己选择需要的JRE模块12。这样做的目的是为了减少JRE的大小和复杂度,提高Java的性能和安全性3。所以,如果你下载了JDK 或更高版本,你会发现安装目录下没有JRE文件夹。

但是,这并不影响你使用JDK来编译和运行Java程序,因为JDK已经包含了运行Java所需的最基本的组件。如果你想使用Eclipse或其他IDE来开发Java项目,你只需要配置好JAVA_HOME和PATH环境变量,指向你安装的JDK目录即可

在上图的地址栏输入cmd打开命令行,输入:

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

即可生成jre(就不截图了)。

1.2 配置环境变量

不设置环境变量,在IDEA中设置路径也行,不过我习惯添加环境变量。

系统环境变量处,点击新建,名字自定义,路径为上图中地址栏的路径:
在这里插入图片描述

然后点击Path,在最下面添加2行:

在这里插入图片描述

注:

为什么不直接在Path中添加那2个路径呢?

  • 因为Path环境变量有长度限制,环境变量太多就不能添加新的了(比如上图我有很多环境变量),使用上面的方法添加,可以缩短长度。

检查是否添加成功:

命令行输入:
(编译器)

javac -version

显示:

javac 20.0.1  

02 在IDEA中运行java程序

安装idea就不说了,没技术含量。

这是IDE2021界面

  1. 新建项目
    文件->项目结构:选择刚刚的SDK即可(它自己会显示出来,选择即可)

在这里插入图片描述
2. 模块,添加一个java模块,即可
3. 模块下面的src即源代码文件夹,上面右击,添加类,即可
4. 编写程序:
在这里插入图片描述

  1. 添加运行/调试配置:

在这里插入图片描述
进去点击加号,选择应用程序,主要选择一下主类
在这里插入图片描述

  1. 运行

这是 IED 2023,都很简便,简单截个图

新建项目,界面更加友好了,我这里选择直接生成实例代码:
在这里插入图片描述

点击创建后,稍等一下,就可以运行示例代码了:
在这里插入图片描述


03 Java的一些基本概念

  1. Java 文件:
    一个Java文件也被称为一个Java类,后缀是.java,展开说就是:

    • 一个Java文件至多能有一个Public类,这个Public类名称必须和文件名相同;
    • 其他类(默认、private、protected)的数量和名称不限。
    • Java程序的代码必须位于类里面,这和其他面向对象语言比如Python是不同的。
  2. java 程序执行:

    • 程序的入口位置是main方法,可以联系C语言的main函数,或者Python的__main__;
    • main方法通常推荐的位置是放在Public类中,放在其他类也不是不可以。

例:

运行不同类的时候,去右上角那里(编辑配置)选择你要运行的类。

在这里插入图片描述

public class Test {
    
    public static void main(String[] args) {
    
        System.out.println("Hello from MainClass!");
        HelperClass helper = new HelperClass();
        helper.display();
    }
}

class HelperClass {
    
    void display() {
    
        System.out.println("This is HelperClass.");
    }
}

class AnotherClass {
    
    void showMessage() {
    
        System.out.println("This is AnotherClass.");
    }
}

按照前面所说,这样改也是可以的:

class Hahhaha {
    
    public static void main(String[] args) {
    
        System.out.println("Hello from MainClass!");
        HelperClass helper = new HelperClass();
        helper.display();
    }
}

.....


~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43764974/article/details/130787508

智能推荐

Lua 入门_lua_setupvalue-程序员宅基地

文章浏览阅读1.4k次。此篇文章所有操作都是基于上一篇安装的docker容器内进行操作案例来自于菜鸟教程首先进入容器安装vimapk add vimLua 变量变量就是给一块内存区域赋予一个值。使得程序可以读取和修改相应内存中内容。变量由字母、数字、下划线组成。必须以字母或下划线开头。Lua 是大小写敏感的。变量分为全局变量和局部变量type variable_listlocal a, b = 1, 10 --局部变量c, d = 2, 20 -- 全局变量如果变量只定义了没有初始化_lua_setupvalue

3.3 ORACLE 的 EMP&DEPT表 建表语句_oracle emp建表语句-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏15次。ORACLE 的 EMP&DEPT表 建表语句-- 创建表与数据CREATE TABLE EMP(EMPNO NUMBER(4) NOT NULL,ENAME VARCHAR2(10),JOB VARCHAR2(9),MGR NUMBER(4),HIREDATE DATE,SAL NUMBER(7, 2),COMM NUMBER(7, 2),DEPTNO NUMBER(..._oracle emp建表语句

使django支持PUT,DELETE的方案_django如何简单快速实现put、delete方法-程序员宅基地

文章浏览阅读9.5k次。第一种方案修改ajax中type方式并设置header,同时对put重新构建数据字典在对views中的方法进行类对象封装时,发现django并不支持像post和get一样将数据封装。 由于网页端无法设置method方法,在用postman和ajax开启pycharm对接口进行debug测试时发现:提交数据后并没有进入代码逻辑。 查阅资料得知,django支持put和delete方法..._django如何简单快速实现put、delete方法

vscode通过跳板机(堡垒机)连接remote服务器_vscode 连接堡垒机-程序员宅基地

文章浏览阅读2.9w次,点赞17次,收藏45次。先吐槽: 搞了一上午!!! 我太难了!!! 最近服务器不够用, 就差动手算深度学习梯度了!!! 向本科朋友借了几台机子跑, 这要是没上过大学, 研究生还不能毕业了呢!!!目录1. 简单任务介绍2. 本机的配置3. 跳板机的配置4.内网服务器的配置5. 怎么样不需要密码访问嘤嘤嘤~~1. 简单的任务介绍:我现在用的电脑叫做A, 然后借了一台服务器叫做C..._vscode 连接堡垒机

【实战】python-docx---每页表格固定显示行数_python docx设置每页行数-程序员宅基地

文章浏览阅读1.1k次。例如100行数据填入word,每页固定展示5行,需要20页_python docx设置每页行数

OpenEmu:一个让你在Mac上爽快体验任天堂的模拟器_openemu苹果电脑-程序员宅基地

文章浏览阅读7k次。目录前言OpenEmu简介OpenEmu实际体验最后前言 这次的文章和以往不太一样, 不谈技术, 来谈谈情怀. 记得那是我小学二三年级的时候吧, 我妈给我买了一个Game Boy, 价格记不清了, 反正不贵, 而且是黑白的那种, 应该就是初代Game Boy吧. 然后还配了一张口袋妖怪青的卡. 在那个魔域啊, 传奇啊, 或者什么类似网游盛..._openemu苹果电脑

随便推点

Shell编程之case循环、for循环及while循环理论与实例_scl case循环执行-程序员宅基地

文章浏览阅读493次。文章目录前言:一、case多分支语句1.1 case语句的结构1.2 case语句应用示例二、for循环语句2.1 for循环语句结构2.2 for语句应用示例三、while 循环语句3.1 while 语句结构3.2 while 语句应用示例总结:前言:除了我们之前讲述的if条件语句外,作为一种脚本编程语言,Shell同样包含循环、分支等其他程序结构,从而能够轻松完成更加复杂的工作,本篇博客..._scl case循环执行

TCP中的RST标志(Reset)详解_tcp的rst-程序员宅基地

文章浏览阅读2.9k次,点赞2次,收藏7次。TCP中的RST标志(Reset)详解_a_tu_的专栏-程序员宅基地_rst tcp在谈RST攻击前,必须先了解TCP:如何通过三次握手建立TCP连接、四次握手怎样把全双工的连接关闭掉、滑动窗口是怎么传输数据的、TCP的flag标志位里RST在哪些情况下出现。下面我会画一些尽量简化的图来表达清楚上述几点,之后再了解下RST攻击是怎么回事。1、TCP是什么?TCP是在IP网络层之上的传输层协议,用于提供port到port面向连接的可靠的字节流传输。我来用土语解释下上面的几个关键字:por_tcp的rst

日常问题集锦_el-input 居中-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏5次。【①】运行项目时出现的端口被占用问题:【②】JS中获取当前时间:【③】一些常用的校验规则:【④】vue 表格中数据默认全部选中:【⑤】vue 获取表格中选中行的数据:【⑥】vue 强制更新数据:【⑦】vue 想要el-input框内文字居中显示:【⑧】vue 清除表单内的内容或者清除表单验证:【⑨】vue 表格分页的两种格式:【⑩】vue 中防止按钮重复点击提交的方法:_el-input 居中

Android11及以上 文件读写权限申请_android 11 write_external_storage-程序员宅基地

文章浏览阅读2.1w次,点赞9次,收藏50次。Android11及以上 文件读写权限申请_android 11 write_external_storage

yii2 在线教育系统,开办托管班需要什么手续?如何经营托管班?-程序员宅基地

文章浏览阅读330次,点赞8次,收藏6次。托管班店铺的装修风格,一定要结合学生喜欢的设计风格,颜色搭配一定要看起来舒适,让学生一进来就有学习的范围,不由自主就想学习的动力,所以装修的风格,是要符合学生学习的环境氛围,让学生一进来想呆着不想走,所以设计方面,一定一定多参考同行的装修风格。想要运营好一家托管班,那么需要有一个正规化的管理流程,那么就要为校区制定各种规章制度,按照规章制度来走,避免后期因为没有任何提示,导致出现一系列的问题,所以要出针对教师,学生,家长的不同规章制度。保护孩子的安全,预防托管机构火灾事故的发生,是托管班一项重要指标。

外观模式实例-智能手机一键备份_某软件公司为新开发的智能手机控制与管理软件提供了一键备份功能,通过该功能可以-程序员宅基地

文章浏览阅读2.2k次,点赞7次,收藏40次。外观模式实例问题描述结构图编程实现需要交互的类Facade类客户端问题描述某软件公司为新开发的智能手机控制与管理软件提供一键备份功能,通过该功能可以将原本存储在手机中的通讯录、短信、照片、音乐等资料一次性拷贝到移动存储介质中(例如:SD卡)中。在实现过程中需要与多个已有的类进行交互,如通讯录管理类、短信管理类。结构图编程实现需要交互的类public class ContactsManager { private String contacts; public Contacts_某软件公司为新开发的智能手机控制与管理软件提供了一键备份功能,通过该功能可以

推荐文章

热门文章

相关标签