Java必备软件安装

文章目录

素材

通过网盘分享的文件:Java必备软件安装文档
链接: https://pan.baidu.com/s/1meTlAELI6a4tE53if4p4-w?pwd=kg72 提取码: kg72

https://www.ajihuo.com/
犬小哈教程

一、安装IDEA

前言:IDEA简介以及优点

1、Jetbrains公司介绍

IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。该公司旗下还有许多其他产品,如:

  • WebStorm:用于开发JavaScript、HTML5、CSS3 等前端技术
  • PyCharm:用于开发python
  • PhpStorm:用于开发PHP
  • RubyMine:用于开发Ruby/Rails
  • AppCode:用于开发Objective - C/swift
  • CLion:用于开发C/C+++
  • DataGrip:用于开发数据库和SQL
  • Rider:用于开发.NET
  • GoLand:用于开发 Go
2、Intellij IDEA介绍

IDEA 全称 IntelliJ IDEA,是java编程语言的集成开发环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。

InteliJ IDEA曾在2015年的官网上这样介绍自己:

Excel at enterprise, mobile and web development with Java, Scala and Groovy,with all the latest modern technologies and frameworks available out of the box.

简译: IntelliJ IDEA主要用于支持Java、 Scala、 Groovy 等语言的开发工具,同时具备支持目前主流的技术和框架,擅长于企业应用、移动应用和Web应用的开发。

3、IDEA主要功能介绍

语言支持

安装插件后支持 SQL类 基本JVM
PHP PostgreSQL Java
Python MySQL Groovy
Ruby Oracle
Scala SQL Server
Kotlin

其他支持

支持的框架 额外支持的语言代码提示 支持的容器
Spring MVC H5 Tomcat
GWT CSS3 TomEE
WebServices SASS WebLogin
JSF LESS Jetty
Jetty Node.js
4、IDEA主要优势(相较于Eclipse而言)

强大的整合能力。比如:Git、 Maven、 Spring 等
提示功能的快速、便捷
提示语言功能范围广
好用的快捷键和代码模板
精准搜索
————————————————

注意:如果安装和卸载报错2503或2502是因为我们没有权限去操作,看下自己是不是删除Windows上面什么重要的东西了

1、安装和使用Idea

1.1 安装Idea教程

Idea安装网址:https://www.exception.site/essay/how-to-free-use-intellij-idea-2019-3-by-resigter-code?ivk_sa=1024320u

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PevRyRkC-1670919801049)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221207160207799.png)]

选择安装位置 — 》点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3gp0Ij8O-1670919801050)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221207160303209.png)]

选择Java — 》 点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ygi0xWL0-1670919801050)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221207160408350.png)]

点击安装 — 》 进行安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KQUIV5Qx-1670919801050)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221207160435042.png)]

点击运行 — 》 安装完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Eq41BEU3-1670919801051)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221207160919433.png)]

Idea重装多次打不开解决方案:https://blog.youkuaiyun.com/weixin_45292939/article/details/106156267

或者可以去把对应的环境变量删除一下

1.2 使用Idea

2.1 将素材进行解压
在这里插入图片描述

2.2进行如下操作

点击这个插件就可以进行激活了

在这里插入图片描述

2.3 使用激活码进行激活

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VxzhQAic-1670919801051)(file:///C:/Users/11/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)]

卸载jdk安装不了问题解决方案:https://blog.youkuaiyun.com/weixin_42638139/article/details/114160630
2.4 打开Idea
在这里插入图片描述

2、安装JDK和配置环境变量

2.1 安装 JDK开发工具包

点击素材中的jdk — 》进行安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vX0jHfz6-1670919801051)(file:///C:/Users/11/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MwDzWrhe-1670919801052)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208105347708.png)]

修改安装路径 —》点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZEjdzsUQ-1670919801052)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208105446158.png)]

安装完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bkcpo6sN-1670919801052)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208105528734.png)]

2.2 配置JDK环境变量

按住 win + R 打开对话框 在对话框中输入 control system 进入到系统信息中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qlHmJPW5-1670919801053)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221210111701533.png)]

然后打开高级系统设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lf8CP4pI-1670919801054)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221210111852126.png)]

点击高级 —》环境变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KXFhPcFH-1670919801054)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221210112129159.png)]

然后在系统变量下点击新建,创建 JAVA_HOME 环境,需要用到刚才下载好的jdk的路径(可以通过浏览目录和浏览文件来找),然后点击确定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N3OAOtMJ-1670919801054)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221210112428654.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bGP1uSmx-1670919801054)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221210112742329.png)]

编辑用户变量 Path

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W5hb5nqi-1670919801055)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221210113404122.png)]

然后点击新建,将 %JAVA_HOME%\bin 写进去后,点击确定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vKwm0YuZ-1670919801055)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221210113503331.png)]

下面开始“CLASSPATH”的配置。选中“系统变量”查看是否有CLASSPATH项目,如果没有就点击“新建”,如果已经存在就选中CLASSPATH选项,点击“编辑”按钮,然后在“变量名”中填写“CLASSPATH”,在“变量值”中填写“. ;%JAVA_HOME%\lib;”。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OUW1G8tO-1670919801055)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221210113732986.png)]

测试配置是否成功
(1)、重新打开cmd (win + R打开运行,输入cmd即可)输入java -version或javac -version检测版本
(2)、可以输出path,查看是否配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C20SsQbt-1670919801055)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221210113844353.png)]

如果能看到jdk的版本就成功了,JDK环境变量的配置就完成了

3、安装Maven和配置环境变量

3.1 安装Maven

1. Maven的概念

Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理,是一个自动化构建工具。maven是Apache的顶级项目,解释为“专家,内行”,它是一个项目管理的工具,maven自身是纯java开发的( Theresult is a tool that can now be used for building and managing any Java-basedproject),可以使用maven对java项目进行构建、依赖管理。

Maven 是一个基于 Java 的工具,所以需要安装 JDK这是前提。
接下来记录下maven配置环境变量

2. 使用Maven的好处

像以前我们写Java项目的时候没有使用Maven的时候,我们的项目导入依赖的速度是非常慢的,因为要去远程仓库去下载,远程仓库又是国外的,所以非常的慢,打包也非常的繁琐,要很多个步骤,我们安装Maven之后可以配置本地仓库,第一次的话就下载到本地仓库,

后面我们使用的话就直接去本地仓库加载,速度也很快,打包速度也很快,直接点击就可以了,不需要那么繁琐的配置。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FgXy2iEb-1670919801056)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221212095849302.png)]

3.Maven的安装

下载地址:https://maven.apache.org/download.cgi

你也可以点击archives选择其它版本,具体操作如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v9q7cP8K-1670919801056)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221212094701478.png)]
mg-vNgtIW6G-1670919801056)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221212094722504.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y3PfXCO0-1670919801057)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221212094739706.png)]

点击 apache-maven-3.6.0-bin.zip

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qXkviGi1-1670919801057)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221212094915975.png)]

可以下载自己想要的版本

4. 解压在本地位置,然后配置环境变量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y9KJ7vuP-1670919801057)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221212094257609.png)]

5. 修改本地仓库路径

可以通过修改${MAVEN_HOME}/conf/settings.xml配置本地仓库路径

修改Maven安装目录下的 conf/文件夹内的setting.xml文件,新增一行:

<localRepository>D:\repository</localRepository>

maven的环境变量配置方式跟jdk一样。都需要在系统变量中新建环境变量。
1:变量名可以起一个见名知意的名字,比如:MAVEN_HOME,变量值为安装mavne所在的bin的上一层目录

6. 配置环境变量

按住 win + R 打开对话框 在对话框中输入 control system 进入到系统信息中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DdevlBwC-1670919801057)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221210111701533.png)]

然后打开高级系统设置

在这里插入图片描述

点击高级 —》环境变量

在这里插入图片描述

点击系统变量新建 —》浏览目录,选择Maven安装路径 —》点击确定

package com.hexiang.utils; import java.sql.*; import java.util.*; /** * * Title: 数据库工具类 * * * Description: 将大部分的数据库操作放入这个类中, 包括数据库连接的建立, 自动释放等. * * * @author beansoft 日期: 2004年04月 * @version 2.0 */ public class DatabaseUtil { /** 数据库连接 */ private java.sql.Connection connection; /** * All database resources created by this class, should be free after all * operations, holds: ResultSet, Statement, PreparedStatement, etc. */ private ArrayList resourcesList = new ArrayList(5); public DatabaseUtil() { } /** 关闭数据库连接并释放所有数据库资源 */ public void close() { closeAllResources(); close(getConnection()); } /** * Close given connection. * * @param connection * Connection */ public static void close(Connection connection) { try { connection.close(); } catch (Exception ex) { System.err.println("Exception when close a connection: " + ex.getMessage()); } } /** * Close all resources created by this class. */ public void closeAllResources() { for (int i = 0; i < this.getResourcesList().size(); i++) { closeJDBCResource(getResourcesList().get(i)); } } /** * Close a jdbc resource, such as ResultSet, Statement, Connection.... All * these objects must have a method signature is void close(). * * @param resource - * jdbc resouce to close */ public void closeJDBCResource(Object resource) { try { Class clazz = resource.getClass(); java.lang.reflect.Method method = clazz.getMethod("close", null); method.invoke(resource, null); } catch (Exception e) { // e.printStackTrace(); } } /** * 执行 SELECT 等 SQL 语句并返回结果集. * * @param sql * 需要发送到数据库 SQL 语句 * @return a ResultSet object that contains the data produced * by the given query; never null */ public ResultSet executeQuery(String sql) { try { Statement statement = getStatement(); ResultSet rs = statement.executeQuery(sql); this.getResourcesList().add(rs); this.getResourcesList().add(statement);// BUG fix at 2006-04-29 by BeanSoft, added this to res list // MySql 数据库要求必需关闭 statement 对象, 否则释放不掉资源 // - 此观点错误, 因为关闭此对象后有时数据无法读出 //statement.close(); return rs; } catch (Exception ex) { System.out.println("Error in executeQuery(\"" + sql + "\"):" + ex); // ex.printStackTrace(); return null; } } /** * Executes the given SQL statement, which may be an INSERT, * UPDATE, or DELETE statement or an SQL * statement that returns nothing, such as an SQL DDL statement. 执行给定的 SQL * 语句, 这些语句可能是 INSERT, UPDATE 或者 DELETE 语句, 或者是一个不返回任何东西的 SQL 语句, 例如一个 SQL * DDL 语句. * * @param sql * an SQL INSERT,UPDATE or * DELETE statement or an SQL statement that * returns nothing * @return either the row count for INSERT, * UPDATE or DELETE statements, or * 0 for SQL statements that return nothing */ public int executeUpdate(String sql) { try { Statement statement = getStatement(); return statement.executeUpdate(sql); // MySql 数据库要求必需关闭 statement 对象, 否则释放不掉资源 // - 此观点错误, 因为关闭此对象后有时数据无法读出 //statement.close(); } catch (Exception ex) { System.out.println("Error in executeUpdate(): " + sql + " " + ex); //System.out.println("executeUpdate:" + sql); ex.printStackTrace(); } return -1; } /** * 返回记录总数, 使用方法: getAllCount("SELECT count(ID) from tableName") 2004-06-09 * 可滚动的 Statement 不能执行 SELECT MAX(ID) 之类的查询语句(SQLServer 2000) * * @param sql * 需要执行的 SQL * @return 记录总数 */ public int getAllCount(String sql) { try { Statement statement = getConnection().createStatement(); this.getResourcesList().add(statement); ResultSet rs = statement.executeQuery(sql); rs.next(); int cnt = rs.getInt(1); rs.close(); try { statement.close(); this.getResourcesList().remove(statement); } catch (Exception ex) { ex.printStackTrace(); } return cnt; } catch (Exception ex) { System.out.println("Exception in DatabaseUtil.getAllCount(" + sql + "):" + ex); ex.printStackTrace(); return 0; } } /** * 返回当前数据库连接. */ public java.sql.Connection getConnection() { return connection; } /** * 连接新的数据库对象到这个工具类, 首先尝试关闭老连接. */ public void setConnection(java.sql.Connection connection) { if (this.connection != null) { try { getConnection().close(); } catch (Exception ex) { } } this.connection = connection; } /** * Create a common statement from the database connection and return it. * * @return Statement */ public Statement getStatement() { // 首先尝试获取可滚动的 Statement, 然后才是普通 Statement Statement updatableStmt = getUpdatableStatement(); if (updatableStmt != null) return updatableStmt; try { Statement statement = getConnection().createStatement(); this.getResourcesList().add(statement); return statement; } catch (Exception ex) { System.out.println("Error in getStatement(): " + ex); } return null; } /** * Create a updatable and scrollable statement from the database connection * and return it. * * @return Statement */ public Statement getUpdatableStatement() { try { Statement statement = getConnection() .createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); this.getResourcesList().add(statement); return statement; } catch (Exception ex) { System.out.println("Error in getUpdatableStatement(): " + ex); } return null; } /** * Create a prepared statement and return it. * * @param sql * String SQL to prepare * @throws SQLException * any database exception * @return PreparedStatement the prepared statement */ public PreparedStatement getPreparedStatement(String sql) throws SQLException { try { PreparedStatement preparedStatement = getConnection() .prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); this.getResourcesList().add(preparedStatement); return preparedStatement; } catch (Exception ex) { ex.printStackTrace(); } return null; } /** * Return the resources list of this class. * * @return ArrayList the resources list */ public ArrayList getResourcesList() { return resourcesList; } /** * Fetch a string from the result set, and avoid return a null string. * * @param rs * the ResultSet * @param columnName * the column name * @return the fetched string */ public static String getString(ResultSet rs, String columnName) { try { String result = rs.getString(columnName); if (result == null) { result = ""; } return result; } catch (Exception ex) { } return ""; } /** * Get all the column labels * * @param resultSet * ResultSet * @return String[] */ public static String[] getColumns(ResultSet resultSet) { if (resultSet == null) { return null; } try { ResultSetMetaData metaData = resultSet.getMetaData(); int numberOfColumns = metaData.getColumnCount(); if (numberOfColumns <= 0) { return null; } String[] columns = new String[numberOfColumns]; //System.err.println("numberOfColumns=" + numberOfColumns); // Get the column names for (int column = 0; column < numberOfColumns; column++) { // System.out.print(metaData.getColumnLabel(column + 1) + "\t"); columns[column] = metaData.getColumnName(column + 1); } return columns; } catch (Exception ex) { ex.printStackTrace(); } return null; } /** * Get the row count of the result set. * * @param resultset * ResultSet * @throws SQLException * if a database access error occurs or the result set type is * TYPE_FORWARD_ONLY * @return int the row count * @since 1.2 */ public static int getRowCount(ResultSet resultset) throws SQLException { int row = 0; try { int currentRow = resultset.getRow(); // Remember old row position resultset.last(); row = resultset.getRow(); if (currentRow > 0) { resultset.absolute(row); } } catch (Exception ex) { ex.printStackTrace(); } return row; } /** * Get the column count of the result set. * * @param resultSet * ResultSet * @return int the column count */ public static int getColumnCount(ResultSet resultSet) { if (resultSet == null) { return 0; } try { ResultSetMetaData metaData = resultSet.getMetaData(); int numberOfColumns = metaData.getColumnCount(); return numberOfColumns; } catch (Exception ex) { ex.printStackTrace(); } return 0; } /** * Read one row's data from result set automatically and put the result it a * hashtable. Stored as "columnName" = "value", where value is converted to * String. * * @param resultSet * ResultSet * @return Hashtable */ public static final Hashtable readResultToHashtable(ResultSet resultSet) { if (resultSet == null) { return null; } Hashtable resultHash = new Hashtable(); try { String[] columns = getColumns(resultSet); if (columns != null) { // Read data column by column for (int i = 0; i < columns.length; i++) { resultHash.put(columns[i], getString(resultSet, columns[i])); } } } catch (Exception ex) { ex.printStackTrace(); } return resultHash; } /** * Read data from result set automatically and put the result it a * hashtable. Stored as "columnName" = "value", where value is converted to * String. * * Note: assume the default database string encoding is ISO8859-1. * * @param resultSet * ResultSet * @return Hashtable */ @SuppressWarnings("unchecked") public static final Hashtable readResultToHashtableISO(ResultSet resultSet) { if (resultSet == null) { return null; } Hashtable resultHash = new Hashtable(); try { String[] columns = getColumns(resultSet); if (columns != null) { // Read data column by column for (int i = 0; i < columns.length; i++) { String isoString = getString(resultSet, columns[i]); try { resultHash.put(columns[i], new String(isoString .getBytes("ISO8859-1"), "GBK")); } catch (Exception ex) { resultHash.put(columns[i], isoString); } } } } catch (Exception ex) { ex.printStackTrace(); } return resultHash; } /** Test this class. */ public static void main(String[] args) throws Exception { DatabaseUtil util = new DatabaseUtil(); // TODO: 从连接池工厂获取连接 // util.setConnection(ConnectionFactory.getConnection()); ResultSet rs = util.executeQuery("SELECT * FROM e_hyx_trans_info"); while (rs.next()) { Hashtable hash = readResultToHashtableISO(rs); Enumeration keys = hash.keys(); while (keys.hasMoreElements()) { Object key = keys.nextElement(); System.out.println(key + "=" + hash.get(key)); } } rs.close(); util.close(); } }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值