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

商业版的昂贵

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

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

破解版的弊端

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

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

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

  • BUG 频发。

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

  • 不能升级版本。

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

  • 不能稳定使用。

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

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

社区版的真香

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

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

优点

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

  • 免费。

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

  • 正版。

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

缺点

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

  • 功能较少。

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

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

  • 性能较弱。

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

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

使用

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

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

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

下载

IDEA 社区版可以直接去 Jetbrains 官网下载,地址为:

https://www.jetbrains.com/zh-cn/idea/download/download-thanks.html?platform=windows&code=IIC

功能

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

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

Lombok

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

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

Docker

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

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

Tomcat

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

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

  1. 配置服务。

  2. 添加 Tomcat。

  3. 配置 Tomcat。

这样,就可以使用 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 same
    directory 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>
    </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 的控制窗口。

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

  4. 选择执行,在 Ant 命令行 中输入命令:clean init build packWar

    点击确定保存配置。

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

    按照 build.xml 的配置:

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

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

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


  • 环境

    • IntelliJ IDEA Community Edition 2023.2.3
    • JDK 1.8.0_202
    • JDK 17.0.5
    • Maven 3.6.3
    • Tomcat 8.5.79

IDEA社区版,真香!的更多相关文章

  1. 从Eclipse切换到IDEA工具,哎~真香!

    从Eclipse切换到IDEA工具,哎~真香!(图) 个人观点:IDEA工具用了就回不去了!!!对比很多人写,我就不赘述了.我在这里主要介绍一下IDEA工具的一些使用上的技巧,毕竟我开始学习java的 ...

  2. Delphi发布了社区版及Delphi 10.3展望

    http://altd.embarcadero.com/download/radstudio/10.2/delphicbuilder10_2_3__93231.iso,注册机在这里 注册号要自己去申请 ...

  3. 真香系列之 Golang 升级

    Golang 以前的依赖管理一直饱受诟病,社区的方案也层出不穷,比如 vendor, glide, godep 等.之前的依赖管理一直是依靠 GOPATH 或者将依赖代码下载到本地,这种方式都有劣势. ...

  4. 曾经你说chrome浏览器天下第一,现在你却说Microsoft edge真香!呸,渣男!!

    曾经你说chrome浏览器天下第一,现在你却说Microsoft edge真香!呸,渣男!! 一个月前我每天打卡搜索的时候,老是有微软新版浏览器的广告.我刚才是内心其实是抵触的,直到我发现了它的奇妙之 ...

  5. 国人开源了一款超好用的 Redis 客户端,真香!!

    大家都知道,Redis Desktop Manager 是一款非常好用的 Redis 可视化客户端工具,但可惜的是 v0.9.4 版本之后需要收费了: 这个工具不再免费提供安装包了,要对所有安装包收费 ...

  6. 我把公司 10 年老系统改造 Maven,真香!!

    公司有几个老古董项目,应该是 10 年前开发的了,有一个是 JSP + Servlet,有一个还用的 SSH 框架,打包用的 Ant,是有多老啊,我想在座的各位很多都没听过吧. 为了持续集成.持续部署 ...

  7. 你只会用 StringBuilder?试试 StringJoiner,真香!

    你只会用 StringBuilder/ StringBuffer 拼接字符串? 那你就 OUT 了!! 如果需要拼接分隔符的字符串,建议使用 Java 8 中的这款拼接神器:StringJoiner, ...

  8. 无需付费,教你IDEA社区版中开发Web项目(SpringBoot\Tomcat)

    1.IDEA 版本介绍 最近有小伙伴私信我说 IDEA 破解怎么总是失效?难道就没有使用长一点的吗... 咳咳,除了给我留言「激活码」外,或许社区版可能完全满足你的需求. 相信有挺多小伙伴可能不清楚或 ...

  9. 我在苦苦坚持的时候,WebStorm已经悄悄的“真香”起来

    前言 最近接了一个活儿,是用WebStorm开发一个基于VUE的网站,但是我真的是几乎没接触过VUE相关的项目实践,更别说用WebStorm在实际中的应用,之前只是听朋友说多好用,但是,因为现有工具不 ...

  10. SPC空投价值高达310万美金,生态建设者直呼真香!

    市场上面有句名言:"人赚不到自己认知以外的财富",这在数字加密上也是共通的.早在本月12日,也就是前天,NGK官方发行的第N波利好---SPC侧链代币空投已经陆续发放了,NGK以及 ...

随机推荐

  1. 【LeetCode链表#7】设计一个链表并实现常见的操作方法

    设计链表 题目 力扣题目链接 设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的值,next 是指向下一个节点的指针/引用.如果要 ...

  2. ThreadPoolExecutor和Executors的区别

    Executors创建的线程有两类 newFixedThreadPool和newSingleThreadExecutor,队列数量弹性,创建的线程的队列最大值为INTEGER.max容易造成OOM n ...

  3. 【Azure 云服务】查看Azure云服务在中国区域的VM型号大小列表(型号编码,定价层,以及CPU, Memory等)

    问题描述 如何查看创建 Azure Cloud Service 服务时,可以选择的VM型号吗? 问题解答 根据官网参考,可以通过PowerShell脚本 Get-AzComputeResourceSk ...

  4. 【Azure 应用服务】在Azure App Service多实例的情况下,如何在应用中通过代码获取到实例名(Instance ID)呢?

    问题描述 App Service开启多实例后,如何在代码中获取当前请求所真实到达的实例ID(Instance ID)呢? 问题答案 App Service 通过 环境变量的方式 显示的输出实例ID等信 ...

  5. [Python] 端口转发代码分享

    我的魔法被公司防火墙限制了,所以我只能让我的代理流量从我自己的服务器过一遍,但是服务器上面的客户端只能允许本机使用,不能开放公网访问,所以就想到了端口转发 但是网络上面找到的端口转发工具需要各种配置, ...

  6. 理解LLMOps: Large Language Model Operations

    理解LLMOps: Large Language Model Operations 对于像我一样的小白来说,本文是一篇非常不错的LLMs入门介绍文档.来自:Understanding LLMOps: ...

  7. C++ //常用查找算法 find //自定义类型需要重载 ==

    1 //常用查找算法 find 2 #include<iostream> 3 #include<algorithm> 4 #include<functional> ...

  8. 协议CAN&报文&仲裁

    简介 物理层 CAN 协议提供了 5 种帧格式来传输数据 数据链路层 中数据帧和遥控帧有标准格式和扩展格式两种,标准格式有 11 位标识符(ID),扩展格式有 29 个标识符(ID)  显性0,隐性1 ...

  9. vscode 切换页签快捷键 自定义 Ctrl+H Ctrl+L 左右切换

    今天需要整理写资料,需要在多个页签之间切换,发现自定义了快捷. 好久不用这个快捷键,都快忘了. vscode 切换页签快捷键 自定义 Ctrl+H Ctrl+L 左右切换

  10. deepin平台安装debian的cao蛋时

    我在deepin系统安装别的系统的时候,一直在boot界面无法进行下一步.困扰了我好几天,最后从电脑的左侧换成了电脑的右侧(usb)接口. 终于安装成功.你是......牛(deepin)