相对于 Eclipse 的实时自动编译,IntelliJ IDEA 的编译更加手动化,虽然 IntelliJ IDEA 也可以通过设置开启实时编译,但是太浪费资源了,因此不建议这样做。IntelliJ IDEA 编译方式除了手工点击编译按钮进行编译之外,还可以在“容器”运行之前配置一个编译事件,先编译后运行。在默认情况下,IntelliJ IDEA 也都是这样设置的,因此在实际开发中,咱们也不用太注意编译这件事。虽然 IntelliJ IDEA 没有实时编译(未设置时),但是这并不影响代码的自动检查。但是对于多个类之间的关联关系,还是要等BuildRebuild触发的时候才会做相关检查的。

  • 标注1:Build Project,编译项目;
  • 标注2:Build Module,编译模块;
  • 标注3:Recomplie,重新编译类文件;
  • 标注4:Rebuild Project 重新编译项目。

如上图所示,在 IntelliJ IDEA 中,编译方式有以上 3 种,分别为:

  • Build:对选定的目标(Project 或 Module)进行编译,但只编译修改过的文件,没有修改过的文件则不会进行编译。
  • Recompile:对选定的目标(Java 类文件),进行强制性编译,不管目标是否是被修改过。
  • Rebuild:对选定的目标(Project),进行强制性编译,不管目标是否是被修改过,由于 Rebuild 的目标只有 Project,因此每次 Rebuild 花的时间都比较长。

接下来,咱们一起看看运行之前的编译情况:

如上图所示,IntelliJ IDEA 默认在运行项目之前先进行Build操作。

那么,咱们在一起看看 IntelliJ IDEA 编译器的设置和选择:

  • 标注1:设置自动编译项目;
  • 标注2:设置编译时heap大小;
  • 标注3:设置编译时的VM参数。

如上图所示,咱们定位到“ Build、Execution、Deployment > Complie ”页面,通过勾选 标注1 所示的Build project automatically,咱们可以设置 IntelliJ IDEA 进行自动编译;标注2 表示设置编译heap大小,默认为 700,如果使用 64 位的机器,在内存足够的情况下,可以尝试修改为 1500 或以上,此外,如果咱们在编译的时候报出OutOfMemoryError的错误,也可以来修改(减小)这个参数;标注3 表示设置编译时的虚拟机参数,这个可以根据需求进行个性化设置,一般情况下,默认就可以。

如上图所示,咱们定位到“ Build、Execution、Deployment > Compiler > Excludes ”页面,可以通过点击 标注1 所示的+-,任意添加或删减目录(或文件)进行编译排除。在编译项目的时候,如果任何一个可编译的文件没有编译通过,那么 IntelliJ IDEA 就无法运行起来,必须等全部问题解决并且编译通过之后,IntelliJ IDEA 才能运行起来。不过有可能在开发过程中,某一个包目录的文件编译无法通过,但是咱们又不急着改,这时咱们就可以考虑把该包加入到排除编译列表中,这样的话,项目就可以运行起来啦!

  • 标注1:Use compile;
  • 标注2:Project bytecode version;
  • 标注3:Per-module bytecode version.

如上图所示,咱们定位到“ Build、Execution、Deployment > Compiler > Java Compiler ”页面,标注1 所示为 IntelliJ IDEA 支持的编译器,包括 Javac、Eclipse、Ajc 等,默认是 Javac,也推荐使用 Javac;标注2 所示为针对项目字节码编译版本,一般选择的是当前项目主 JDK 的版本;标注3 表示可以针对Project下各个Module的特殊需求单独设置不同的bytecode version,当然,前提是咱们的电脑上必须事先安装对应的 JDK 版本。

转载自:https://blog.csdn.net/qq_35246620/article/details/64958736

九、IntelliJ IDEA 编译方式介绍及编译器的设置和选择的更多相关文章

  1. IntelliJ IDEA 编译方式介绍

    编译方式介绍 相比较于 Eclipse 的实时自动编译,IntelliJ IDEA 的编译更加手动化,虽然 IntelliJ IDEA 也支持通过设置开启实时编译,但是不建议,因为太占资源了.Inte ...

  2. less及编译工具介绍

    什么是LESSCSS LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量.继承.运算.函数等,更方便CSS的编写和维护. LE ...

  3. 比特(bit)、字,字节(B)存储单位之间的关系+其与操作系统位数的关系+不同编译器编译方式下数据类型的表示范围

    1.在表示网络传输速度中与表示存储单位的不同: 表示存储单位时:1kB=1024B,但在网络中表示传输速度是1KB=1000B 2.下面介绍表示存储单位时的关系及其与操作系统位数的关系: 1B=8bi ...

  4. 【学习笔记】比特(bit)、字,字节(B)存储单位之间的关系+其与操作系统位数的关系+不同编译器编译方式下数据类型的表示范围

    1.在表示网络传输速度中与表示存储单位的不同: 表示存储单位时:1kB=1024B,但在网络中表示传输速度是1KB=1000B 2.下面介绍表示存储单位时的关系及其与操作系统位数的关系: 1B=8bi ...

  5. [转]Debug 和 Release 编译方式的区别

    本文主要包含如下内容: 1. Debug 和 Release 编译方式的本质区别 2. 哪些情况下 Release 版会出错 3. 怎样“调试” Release 版的程序 Debug 和 Releas ...

  6. Debug 和 Release 编译方式的本质区别

    一.Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程 ...

  7. [Linux.NET]在CentOS 7.x中编译方式安装Nginx

    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄罗斯大型的 ...

  8. Intellij Idea编译项目下的.java文件时的编码问题

    Intellij Idea编译项目下的.java文件时的编码问题 原创 2015年07月22日 21:45:14 10510 由<编译.java文件时的编码问题>可知,在编译.java文件 ...

  9. 【转】预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)

    用VC++ 2008 编写C语言程序,编译出现错误: 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反) 解决方法: 建工程时 建立空项目 或者在项目设置里关闭预编 ...

随机推荐

  1. css使用text-align: justify不能实现两段对其的问题解决方式

    一行文本不进行处理.还有就是强制换行的也不处理.所以你强制占满(在后面加个span)了一行他才处理 <p class="home">test test test < ...

  2. docker~run起来之后执行多条命令

    最近在搞jenkins pipeline的部署工作,而在对.net core进行部署时不希望安装dotnet sdk,为了移植性更好,打算直接使用aspnetcore的docker镜像,通过docke ...

  3. lua-遍历集合-ipairs和pairs的区别

    --ipairs和pairs的区别arr = {1,3,[5]=5,name="kaikai",age=12, 89}--arr[4]= 23--ipairs--ipairs仅仅遍 ...

  4. Django(5) session登录注销、csrf及中间件自定义、django Form表单验证(非常好用)

    一.Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: 数据库(默认) 缓存 文件 缓存+数据库 加密cookie 1.数据库Session 1 2 3 4 5 ...

  5. 【linux相识相知】sed命令

    在之前的博客中我们介绍了文本三剑客中grep,本次博客就另外一名剑客——sed做出详细的描述,sed真的是一款强大的工具.下面让我们来一起看一下吧! 概述和工作机制 SED的英文全称为Stream E ...

  6. 【linux】netstat 详解

    Linux netstat命令用于显示网络状态. 利用netstat指令可让你得知整个Linux系统的网络情况. 在Internet RFC标准中,Netstat的定义是: Netstat是在内核中访 ...

  7. Apache同一个IP上配置多域名

    NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@yourdomain.com DocumentRoot &quo ...

  8. 【读书笔记】C#高级编程(一).NET体系结构

    写在前面:从业两年来,一直停留在会用的阶段,而没有去仔细思考过为什么这么用,之前也大致扫过<c#高级编程>一书,这次想借一袭脑海中的冲动,再次好好仔细过过这本书,夯实基础,温故知新. 一. ...

  9. js之cookie操作

    1.使用document.cookie保存信息 document.cookie = "Test=cooo";alert(document.cookie); //hours为空字符串 ...

  10. html5可拖动的进度条

    总结:拖动显示进度的进度条 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...