Java入门第01篇

文章目录

前言

一、Java是什么?

二、Java开发工具

1.Java

2.开发工具

3.构建工具

三、Java开发过程

1.IDEA操作

2.Maven操作

2.1本地jar包的情况

3.docker操作

总结


前言

机缘巧合,接触到了Java开发,那就把了解学习到的一些东西,尽量以体系化的方式记录下来,没准正好帮助到有缘的小伙伴


一、Java是什么?

Java是一种编程语言,由Sun Microsystems公司开发并于1995年发布。它是一种面向对象的语言,具有跨平台性,可以在不同的操作系统上运行。Java被广泛应用于开发各种类型的应用程序,包括桌面应用程序、移动应用程序和网络应用程序。它是一种非常流行的编程语言,被许多开发人员使用和学习。

目前Java开发多数是基于Spring Cloud用于构建微服务应用,开发工具IntelliJ IDEA,构建工具Maven。

二、Java开发工具

1.Java

要开发Java应用,首先需要安装JDK(Java开发工具包),如果只是运行程序则只需JRE(Java运行时环境),一般的JDK就包含了JRE。

注意安装JDK后,需要设置环境变量。

cmd窗口,java -version即可验证是否安装、配置成功

2.开发工具

IntelliJ IDEA是一种集成开发环境(IDE),由JetBrains公司开发和发布。它是一种用于Java开发的强大工具,提供了丰富的功能和工具,帮助开发人员更高效地编写和调试代码。IntelliJ IDEA具有智能代码编辑器、代码自动完成、代码重构、强大的调试功能、版本控制集成等特性。它还支持多种编程语言,如Java、Kotlin、Groovy等。

IntelliJ IDEA被认为是Java开发的首选IDE之一,被广泛用于企业和个人开发项目。

3.构建工具

Maven是一种软件项目管理和构建工具,用于管理Java项目的依赖关系、构建过程和项目生命周期。它基于项目对象模型(Project Object Model,POM)概念,通过一个XML文件来描述项目的结构、依赖关系和构建配置。

Maven提供了一系列的命令和插件,可以自动下载所需的依赖库、编译源代码、运行单元测试、打包项目等。它还支持多模块项目的管理,可以将一个大型项目分解为多个子模块,每个模块都有自己的POM文件和构建配置。

Maven的优势之一是它的依赖管理功能。开发人员只需要在项目的POM文件中声明所需的依赖库,Maven会自动下载这些依赖库,并将它们添加到项目的类路径中。这样可以方便地管理项目的依赖关系,并确保项目的构建和运行环境一致。

通过使用Maven,开发人员可以更加高效地管理和构建Java项目,减少重复劳动和手动配置的工作量,提高开发效率。

Maven同样需要设置环境变量

1)新增MAEN_HOME环境变量,值为Maven安装目录,即bin目录所在的目录

2)环境变量Path,新增值:%MAVEN_HOME%\bin

cmd窗口,mvn -version 即可验证是否安装、配置成功

三、Java开发过程

1.IDEA操作

在IDEA中其实也是集成了maven

右键项目名称,Maven(在右键菜单最下面),重新加载项目,就会根据.pom文件(依赖定义文件),进行依赖检查,如果相关依赖jar包不存在,就会自动下载安装到本地仓储库(maven)

本地仓储位置一般在:C:\Users\当前登录用户\.m2\repository

右键项目名称,构建xx模块,即可对项目进行编译

2.Maven操作

maven除了可以管理依赖,还可以用来构建项目

mvn clean install 命令,即可对之前构建的项目进行清理后重新构建项目、安装项目到本地仓储库(用于多个项目之间有依赖调用的情况)

如果上面命令出现错误,也可以分开执行:mvn clean清理,mvn complie编译,mvn install打包,以便发现到底是哪个步骤出的问题

2.1本地jar包的情况

有些情况需要引用本地私有jar包,这个时候共有仓储是没有这个jar包的,那么就可以本地仓储库安装jar包

mvn install:install-file -Dfile=xxx.jar -DgroupId=com.aaa -DartifactId=aa_bbb -Dversion=1.0 -Dpackaging=jar

-Dfile=xxx.jar:xxx.jar即你的jar包文件名

-DgroupId=com.aaa:com是仓储的一级文件夹,aaa是仓储的二级文件夹,一般是公司名

-DartifactId=aa_bbb:aa_bbb是仓储的三级文件夹,一般是jar文件名

-Dversion=1.0:1.0即仓储的四级文件夹,一般是版本号

再往下就是具体的jar包以及pom等文件了

有了如上信息,我们再在.pom文件中添加依赖信息

<dependency><groupId>com.aaa</groupId><artifactId>aa_bbb</artifactId><version>1.0</version>
</dependency>

3.docker操作

一般是将打包好的应用,构建为docker镜像,以便可以通过容器运行

构建docker镜像:docker build -t xxx-service:0.0.1 .

注意这里需要通过dockerfile定义java基础镜像、app路径、运行参数等

将镜像保存为离线文件:docker save xxx-service:0.0.1 -o docker-image\xxx-service.tar

这样就可以直接将镜像转移到服务器部署运行


总结

本文对Java开发工具、开发过程等进行了一些简要介绍,后续根据使用情况会不断有新的文章出炉,希望可以帮助到大家。

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

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

相关文章

【Arc gis】使用DEM提取流域范围

地址&#xff1a;arcgis DEM 提取流域范围&#xff08;详细教程&#xff09;(空间分析--Hydrology)_gis的gridcode是什么意思-CSDN博客

AUTOSAR学习

文章目录 前言1. 什么是autosar&#xff1f;1.1 AP&#xff08;自适应平台autosar&#xff09;1.2 CP&#xff08;经典平台autosar)1.3 我的疑问 2. 为什么会有autosar3.autosar的架构3.1 CP的架构3.1.1 应用软件层3.1.2 运行时环境3.1.3 基础软件层 3.2 AP的架构 4. 参考资料 …

shell脚本中的变量

关于Linux操作系统中当前shell进程与子shell进程的详细解释 如上图所示&#xff0c;使用ps -f可以当前查看Linux操作系统中当前正在运行的进程。 然后敲bash后&#xff0c;相当于在当前的bash shell环境下又创建了一个子bash shell的进程&#xff0c; 如上图所示&#xff0c;…

Qt | QPalette 类(调色版)

01、简介 1、需要用到 QWidget类中的如下属性 palette:QPalette 访问函数:const QPalette &palette() const; void setPalette(const QPalette&);  该属性描述了部件的调色板。在渲染标准部件时,窗口部件的样式会使用调色板,而且不同的平台或不同的样式通常具…

win环境安装Node.js的多种方式

今天我们分享win环境安装Node.js的多种方式&#xff1a; 首先要明白Node.js是一个JavaScript运行环境&#xff0c;它基于Google的V8引擎进行封装&#xff0c;允许JavaScript运行在服务器端。Node.js让JavaScript成为一种与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语…

图神经网络入门(1)-networkx

简介 NetworkX是一个Python语言的图论建模工具&#xff0c;用于创建、操作复杂网络结构&#xff08;如图、有向图等&#xff09;。它提供了许多用于分析网络、生成随机网络、以及可视化网络的函数和工具。用户可以利用NetworkX来研究复杂网络的拓扑结构、节点间的关系以及路径查…

【GIS案例】居住环境适宜性评价

目的: 拟购买住宅,需在现有条件下,基于地理空间分析方法和空间认知模型对居住环境进行综合评价。通过该实验掌握基于GIS的地理空间认知方法及土地适宜性评价基本原理与方法。 数据: (1)人口调查图(pop); (2)公园入口图(parkgate); (3)医院分布图(hospital…

【RK3588/算能/Nvidia智能盒子】挑战「无电无网」部署AI算法,守护大亚湾荃美石化码头工地安全

“万顷碧波之上&#xff0c;一座千米钢栈桥如蛟龙出水&#xff0c;向大海蜿蜒。钢栈桥上的项目建设者正在加紧作业&#xff0c;为助推惠州大亚湾加快建设成为世界级绿色石化基地全力奋战。”这是不久前北京日报对大亚湾惠州港荃湾港区荃美石化码头工地的描述。 △ 图片来源于北…

vue项目cnpm i 报错

报错内容&#xff1a; Install fail! TypeError: Cannot convert undefined or null to object npminstall version: 3.28.1 npminstall args: C:\Program Files\nodejs\node.exe C:\Users\user\AppData\Roaming\nvm\v12.4.0\node_modules\cnpm\node_modules\npminstall\bin\i…

序列化与反序列化漏洞实例

实验环境&#xff1a; 本次的序列化与反序列化漏洞为2021年强网杯上的一道比赛题目&#xff0c;我使用phpstudy集成环境将其测试环境搭建在了本地&#xff0c;如下。涉及的几个页面php为&#xff1a; index.php function.php myclass.php index.php : <?php // inde…

2024年阿里巴巴全球数学竞赛首次向人工智能(AI)开放

大家好&#xff0c;我是微学AI&#xff0c;最近大家突然开始关注阿里巴巴全球数学竞赛了&#xff0c;在这个人工智能爆发的时代&#xff0c;2024年阿里巴巴全球数学竞赛首次向人工智能&#xff08;AI&#xff09;开放&#xff0c;要求参赛的AI模型在比赛前提交源代码&#xff0…

数据上云--科技感满满

迁移上云&#xff1a;目的 1 为什么要上云 ① 公司发展规划&#xff0c;需要上云 如果我自己公司是自研的 ② 国家要求&#xff0c;第二&#xff1a;自研产品&#xff0c;但是公司不是纯靠销售来去盈利发展&#xff0c;而还会设计需要将我们的技术服务&#xff0c;提供给客户…

个人博客测试用例设计

个人博客测试用例设计 个人博客测试用例 分别从功能、性能、安全、兼容及界面分别展开 个人博客测试用例

【长春理工大学主办 | EI检索稳定 | SPIE出版 | 过往4届均检索 】第五届计算机视觉和数据挖掘国际学术会议(ICCVDM 2024)

第五届计算机视觉和数据挖掘国际学术会议&#xff08;ICCVDM 2024&#xff09; 2024 5th International Conference on Computer Vision and Data Mining 会议简介 第五届计算机视觉与数据挖掘国际学术会议&#xff08;ICCVDM 2024&#xff09;将于2024年7月19-21日在中国长春…

内部类介绍

内部类&#xff08;Inner Class&#xff09;是在另一个类的内部定义的类。它可以访问外部类的所有成员&#xff0c;包括私有成员。内部类有两种主要形式&#xff1a;局部内部类&#xff08;定义在方法内部&#xff09;和成员内部类&#xff08;定义在类的内部&#xff0c;但不在…

day02论文学习:能够使大语言模型产生带有引用的文章

1.主题&#xff1a;Enabling Large Language Models to Generate Text with Citations&#xff08;能够使大语言模型产生带有引用的文章&#xff09; 引用出处&#xff1a; Gao, T., Yen, H., Yu, J., & Chen, D. (2023). Enabling Large Language Models to Generate Tex…

PostgreSQL源码分析——CREATE SERVER

我们分析一下外部数据包装器中创建外部服务器的CREATE SERVER命令的实现源码。前面已经分析过很多DDL的语法实现。这里简单描述一下大致过程。 主流程如下所示&#xff1a; exec_simple_query(query_string); --> pg_parse_query(query_string);--> raw_parser(query_s…

Java基础 - 练习(二)打印菱形

Java基础练习 打印菱形&#xff0c;先上代码&#xff1a; // 方法一&#xff1a;基础&#xff0c;好理解 public static void diamond() {//控制行数for (int i 1; i < 4; i) {//空格的个数for (int k 1; k < 4 - i; k) {System.out.print(" ");}//控制星星…

使用Python连接MySQL数据库

1.导入包 import pymysql2.设置连接信息 pymsql中connect方法可以设置连接的信息 conn pymysql.connect(hostmHost, # 主机号port3306, # 端口号usermUser, # 用户名passwordmPwd, # 密码databasemDatabase # 数据库名称 )3.创建表 cursor()方法可以执行sql语句&…

如何构建构建一个AI驱动的通用爬虫

我最近开始研究网络爬虫&#xff0c;并且考虑到AI领域的一切发展&#xff0c;我认为尝试构建一个可以迭代导航网络直到找到它所寻找的内容的“通用”爬虫会很有趣。这是一个正在进行中的工作&#xff0c;但我想分享一下我目前的进展。 规格 给定一个起始URL和一个高级目标&…