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

IDEA社区版,真香!

IDEA(IntelliJ IDEA)是众多 Java 开发者的首选。

商业版的昂贵

IDEA 商业版(IntelliJ IDEA Ultimate)功能非常强大,能够满足 Java 开发的所有需求,但其高昂的价格……

image-20230926165220789

此时只能感叹,不是不想用正版,而是正版用不起!

破解版的弊端

除了购买正版,只能选择破解版了。

网上有非常多的破解教程,每个版本都会跟进,只要勤加动手,总是能破解的。

相信这是大多数开发者的选择,本人很长一段时间也是这样做的,但它有以下几个缺点:

  • BUG 频发。

    由于是破解版,总会有一些莫名其妙的 BUG。

  • 不能升级版本。

    如果升级版本需要重新破解,比较麻烦,且成功的可能性未知。

  • 不能稳定使用。

    由于是破解版,随时可能遭遇官方的封杀,这样就不能用了,只能寻求其他破解之法。

所以,破解版虽然能够白嫖,但白嫖的代价可不低,特别是在工作场景中,工具的不稳定是会影响工作效率的,甚至是工作的心情。

社区版的真香

在经历了破解版的种种弊端后,我决定尝试下社区版。

之前白嫖商业版习惯了,从来没有关注过社区版,这次尝试之后,只能感叹,真香

优点

社区版有两大显而易见的优点:

  • 免费。

    相较于商业版高昂的价格,社区版的免费无疑是最大的优点。

  • 正版。

    社区版由于是免费的,可以直接使用正版,省去了破解的麻烦,也规避了破解的所有缺点。

缺点

当然了,社区版的缺点也是有的:

  • 功能较少。

    社区版只提供了最基本的 Java 开发相关功能,商业版中的 Web 开发数据库管理特色功能都是没有的。

    个人觉得这不是问题,因为 Web 开发数据库管理都是有专业免费的工具可以实现的,那些特色功能在 Java 开发中也不是必需的。

  • 性能较弱。

    社区版的维护是没有商业版频繁的,所以性能和响应速度这些肯定无法与商业版相比。

    在一段时间的使用下来,这点性能和响应速度的减弱是完全可以接受的,而且性能较弱也意味着占用的内存较少,对于 IDEA 这个”内存大户”甚至可以归为优点。

使用

在了解了社区版的优缺点后,就该介绍社区版的使用了。

首先声明,社区版的使用逻辑与商业版没有任何区别

所以,对于熟悉商业版的开发者来说,社区版是没有学习成本的。

功能

这里只介绍社区版相较于商业版不能直接使用的功能。

社区版自带的功能与商业版一致,就不赘述了。

Lombok

与商业版不同,社区版是没有默认安装 Lombok 插件的,所以不能直接使用 Lombok 的功能,需要先安装插件:

image-20230926174050291

安装插件后,Lombok 的功能与商业版一致,这里就不详细介绍了。

Docker

与商业版不同,社区版是没有默认安装 Docker 插件的,所以不能直接使用 Docker 的功能,需要先安装插件:

image-20230926174321267

如果项目中需要使用 Dockerfile 等 Docker 的功能,可以安装此插件实现。

Tomcat

对于非 Spring Boot 项目,项目的运行需要依赖服务器,常用的服务器 Tomcat 社区版是没有自带功能的,需要先安装插件:

image-20230927094745680

然后进行如下步骤配置 Tomcat:

  1. 配置服务。

    image-20230927095215171

  2. 添加 Tomcat。

    image-20230927095417045

  3. 配置 Tomcat。

    image-20230927112917738

这样,就可以使用 Tomcat 启动服务了。

打war包

IDEA 社区版不能像商业版那样可以通过工件打 war 包。

如果需要打 war 包,可以使用 Ant 进行打包,具体步骤如下:

  1. 创建 build.xml

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!-- WARNING: Eclipse auto-generated file.Any modifications will be overwritten.To include a user specific buildfile here, simply create one in the samedirectory with the processing instruction <?eclipse.ant.import?>as the first entry and export the buildfile again. -->
    <project basedir="." default="packWar" name="TARGET"><property environment="env"/><property name="debuglevel" value="source,lines,vars"/><property name="target" value="1.8"/><property name="source" value="1.8"/><!--自定义部分--><property name="build" value="${basedir}/build"/><property name="build.class" value="${basedir}/build/classes"/><property name="src" value="${basedir}/src"/><property name="web" value="${basedir}/WebContent"/><property name="project_jar_path" value="${web}/WEB-INF/lib"/><property name="jre_jar_path" value="D:\Environment\jdk\jdk1.8.0_202\jre\lib"/>  <property name="jre_jar_ext_path" value="D:\Environment\jdk\jdk1.8.0_202\jre\lib\ext"/>  <property name="tomcat_jar_path" value="D:\Environment\apache-tomcat-8.5.79\lib"/>  <path id="project_jar"><fileset dir="${project_jar_path}"><include name="*.jar"/></fileset></path><path id="jre_jar"><fileset dir="${jre_jar_path}"><include name="*.jar"/></fileset></path><path id="jre_ext_jar"><fileset dir="${jre_jar_ext_path}"><include name="*.jar"/></fileset></path><path id="tomcat_jar"><fileset dir="${tomcat_jar_path}"><include name="*.jar"/></fileset></path><path id="TARGET.classpath"><pathelement location="build/classes"/><path refid="project_jar"/><path refid="jre_jar"/><path refid="jre_ext_jar"/><path refid="tomcat_jar"/></path><target name="clean"><echo message="--------------------开始清理旧的编译文件---------------------------"/><delete dir="build/classes"/><delete file="${basedir}/build/${ant.project.name}.war"/></target><target name="init"><echo message="---------------------开始拷贝资源文件-----------------------------"/><mkdir dir="build/classes"/><copy includeemptydirs="false" todir="build/classes"><fileset dir="src"><exclude name="**/*.java"/></fileset></copy><copy includeemptydirs="false" todir="build/classes"><fileset dir="resources"><exclude name="**/*.java"/></fileset></copy><copy includeemptydirs="false" todir="${project_jar_path}"><fileset dir="${tomcat_jar_path}"><include name="*.jar"/></fileset></copy></target><target name="build"><echo message="-----------------------开始编译JAVA文件-----------------------------"/><echo message="${ant.project.name}: ${ant.file}"/><javac debug="true" debuglevel="${debuglevel}" destdir="build/classes" includeantruntime="false" source="${source}" target="${target}"><src path="src"/><src path="resources"/><classpath refid="TARGET.classpath"/></javac></target><target name="packWar"><echo message="-----------------------开始构建war包-----------------------------"/><war destfile="${basedir}/build/${ant.project.name}.war" webxml="${web}/WEB-INF/web.xml"><fileset dir="${web}"/><classes dir="${build.class}"/></war></target>
    </project>
  2. 创建 build.xml 后会出现 Ant 的控制窗口。

    image-20230928174348640

  3. 选择 packWar ,点击鼠标右键选择属性

    image-20230928174422943

  4. 选择执行,在 Ant 命令行 中输入如果命令:

    clean init build packWar
    

    点击确定保存配置。

  5. 需要打 war 包时,双击 packWar 即可进行打包。

    按照 build.xml 的配置:

    • 打的 war 包会放在 build 目录下。
    • 编译后的文件会放在 build/classess 目录下。

    如果需要调整,可以修改 build.xml 中的配置。

如此,IDEA 社区版已经能满足日常的 Java 开发工作了,免费使用正版的 IDEA,只能说一句,真香

相关文章:

IDEA社区版,真香!

IDEA&#xff08;IntelliJ IDEA&#xff09;是众多 Java 开发者的首选。 商业版的昂贵 IDEA 商业版&#xff08;IntelliJ IDEA Ultimate&#xff09;功能非常强大&#xff0c;能够满足 Java 开发的所有需求&#xff0c;但其高昂的价格…… 此时只能感叹&#xff0c;不是不想用…...

SpringBoot实现全局异常处理

1.全局异常处理介绍 1.1 简介 全局异常处理器即把错误异常统一处理的方法&#xff0c;可以在多个地方使用&#xff0c;而不需要为每个地方编写单独的处理逻辑。它可以帮助开发人员更好地管理异常&#xff0c;并提供一致的错误处理方式。 1.2 优点 1.全局异常处理可以提高代码…...

Day05-循环高级和数组

循环高级 1.无限循环 概念&#xff1a; 又叫死循环。循环一直停不下来。 for格式&#xff1a; for(;;){System.out.println("循环执行一直在打印内容"); } 解释&#xff1a; 初始化语句可以空着不写&#xff0c;表示循环之前不定义任何的控制变量。 条件判断…...

从代码操作层面解释什么是“面相对象编程”?

起因&#xff1a; 今天开了一个小会&#xff0c;会上朋友给我们说了一个事&#xff0c;Java项目上他开发一个小功能 用了很多代码&#xff0c;项目经理发现代码太多&#xff0c;说要优化一下&#xff0c;然后亲自帮同事优化&#xff0c;结果是查库的代码少了至少10条sql&#x…...

【MySQL】SQL优化、char、varchar、外键约束、排查慢sql等重点知识汇总

目录 SQL语句 char和varchar比较 SQL语句如何优化 说一下你理解的外键约束 如何排查慢 sql SQL语句 对库操作 创建数据库 create database 数据库名 删除数据库 drop database 数据库名 显示所有数据库 show databases 选中数据库 use 数据库名 对表操作 创建表…...

git管理常用命令

1、下载代码 git clone 地址2、软件代码提交 1、查看工程中被修改的文件&#xff1a;git status 2.将不需要提交的文件回退&#xff1a;git check <文件路径> 3.更新工程到最新&#xff1a;git pull 4.将本地代码添加到暂存区&#xff1a;git add <将要提交的文件路…...

Python 逢七拍手小游戏2.0

"""逢七拍手游戏介绍&#xff1a;逢七拍手游戏的规则是&#xff1a;从1开始顺序数数&#xff0c;数到有7&#xff0c;或者是7的倍数时&#xff0c;就拍一手。例如&#xff1a;7、14、17......70......知识点&#xff1a;1、循环语句for2、嵌套条件语句if/elif/e…...

基于微信小程序的在线小说阅读系统,附数据库、教程

1 功能简介 Java基于微信小程序的在线小说阅读系统 微信小程序的在线小说阅读系统&#xff0c;系统的整体功能需求分为两部分&#xff0c;第一部分主要是后台的功能&#xff0c;后台功能主要有小说信息管理、注册用户管理、系统系统等功能。微信小程序主要分为首页、分类和我的…...

216. 组合总和 III

找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 示例 1: 输入: k 3, n 7 输出: [[1,2,4]] 解释: …...

【Java】数组的深浅拷贝问题(二维数组举例)(136)

深拷贝和浅拷贝&#xff1a; 对于数组来说&#xff0c;深拷贝就是相当于拷贝了数组的对象&#xff08;基本数据类型&#xff09;&#xff0c;也就是数组当中的内容。而浅拷贝就是拷贝的是数组的地址&#xff08;引用类型&#xff09;&#xff0c;浅拷贝只是复制了对象的引用地…...

【轮趣-科大讯飞】M260C 环形六麦测试 2 - ROS1功能测试与唤醒、语音识别程序解析

所有内容请看&#xff1a; 博客学习目录_Howe_xixi的博客-CSDN博客https://blog.csdn.net/weixin_44362628/article/details/126020573?spm1001.2014.3001.5502原文在飞书&#xff0c;请联系我获取阅读链接&#xff0c;我太懒了...

油猴(篡改猴)学习记录

第一个Hello World 注意点:默认只匹配了http网站,如果需要https网站,需要自己添加match https://*/*代码如下 这样子访问任意网站就可以输出Hello World // UserScript // name 第一个脚本 // namespace http://tampermonkey.net/ // version 0.1 // descri…...

LeetCode 面试题 05.08. 绘制直线

文章目录 一、题目二、Java 题解 一、题目 已知一个由像素点组成的单色屏幕&#xff0c;每行均有 w 个像素点&#xff0c;所有像素点初始为 0&#xff0c;左上角位置为 (0,0)。 现将每行的像素点按照「每 32 个像素点」为一组存放在一个 int 中&#xff0c;再依次存入长度为 le…...

机器人中的数值优化|【六】线性共轭梯度法,牛顿共轭梯度法

机器人中的数值优化|【六】线性共轭梯度法&#xff0c;牛顿共轭梯度法 往期回顾 机器人中的数值优化|【一】数值优化基础 机器人中的数值优化|【二】最速下降法&#xff0c;可行牛顿法的python实现&#xff0c;以Rosenbrock function为例 机器人中的数值优化|【三】无约束优化…...

FastestDet---原理介绍

1.测试指标 2.算法定位 FastestDet是设计用来接替yolo-fastest系列算法,相比于业界已有的轻量级目标检测算法如yolov5n, yolox-nano, nanoDet, pp-yolo-tiny, FastestDet和这些算法根本不是一个量级,FastestDet无论在速度还是参数量上,都是要小好几个数量级的,但是精度自然…...

ORACLE 在内存管理机制上的演变和进化

截止目前&#xff0c;计算机内存仍然被认为是我们可以获得的最快速度的物理存储设备。 将频繁访问的数据尽可能地置于内存中&#xff0c;已成为当前各种软件和应用程序提高数据访问性能&#xff0c;减少访问延迟的最为有效的途径。 然而&#xff0c;内存作为关键的计算资源&am…...

Linux ❀ 进程出现process information unavailable时的消除方法

[rootmaster ~]# jps 74963 -- process information unavailable 78678 Jps [rootmaster ~]# cd /tmp/hsperfdata_redhat/ # redhat为启动该java进程的用户ps -ef | grep $pid查找 [rootmaster hsperfdata_redhat]# ll total 32 -rw------- 1 redhat redhat 32768 Sep 27 15:…...

ps智能填充功能平替:alpaca的安装和使用

为了解决ps beta 智能填充无法使用的问题&#xff0c;需要用alpaca来平替&#xff0c;下面是安装教程&#xff1a; 安装方法&#xff1a; 1、下载插件。 alpaca插件汉化-夸克网盘https://pan.quark.cn/s/1168b447a44e#/list/share 2、 根据使用的PS版本&#xff0c;选择对应文件…...

【前端打怪升级日志之ES6篇】玩转函数

学习资料 阮一峰老师《ECMAScript 6 入门》— 函数的扩展 总结应用 1. 函数参数默认值与对象解构赋值默认值的结合使用 // 场景&#xff1a;方法调用时传参希望只传第二个参数 // 方案1&#xff1a; function foo({x1,y2}){console.log(x,y); } foo({}) //1 2 foo({x:2}) /…...

网址静态码手机制作教程,附图文详解!

网址的静态码是如何生成的呢&#xff1f;静态码是二维码的一种常用类型&#xff0c;一般常见的静态码类型主要是文本或者网址&#xff0c;那么在电脑制作静态码的方法相信很多小伙伴都知道怎么做&#xff0c;那么手机上制作的方法&#xff0c;大家感兴趣吗&#xff1f;下面来给…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)

第一篇&#xff1a;Liunx环境下搭建PaddlePaddle 3.0基础环境&#xff08;Liunx Centos8.5安装Python3.10pip3.10&#xff09; 一&#xff1a;前言二&#xff1a;安装编译依赖二&#xff1a;安装Python3.10三&#xff1a;安装PIP3.10四&#xff1a;安装Paddlepaddle基础框架4.1…...

DeepSeek越强,Kimi越慌?

被DeepSeek吊打的Kimi&#xff0c;还有多少人在用&#xff1f; 去年&#xff0c;月之暗面创始人杨植麟别提有多风光了。90后清华学霸&#xff0c;国产大模型六小虎之一&#xff0c;手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水&#xff0c;单月光是投流就花费2个亿。 疯…...

数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)

目录 &#x1f50d; 若用递归计算每一项&#xff0c;会发生什么&#xff1f; Horners Rule&#xff08;霍纳法则&#xff09; 第一步&#xff1a;我们从最原始的泰勒公式出发 第二步&#xff1a;从形式上重新观察展开式 &#x1f31f; 第三步&#xff1a;引出霍纳法则&…...

轻量级Docker管理工具Docker Switchboard

简介 什么是 Docker Switchboard &#xff1f; Docker Switchboard 是一个轻量级的 Web 应用程序&#xff0c;用于管理 Docker 容器。它提供了一个干净、用户友好的界面来启动、停止和监控主机上运行的容器&#xff0c;使其成为本地开发、家庭实验室或小型服务器设置的理想选择…...