九、IntelliJ IDEA 编译方式介绍及编译器的设置和选择
相对于 Eclipse 的实时自动编译,IntelliJ IDEA 的编译更加手动化,虽然 IntelliJ IDEA 也可以通过设置开启实时编译,但是太浪费资源了,因此不建议这样做。IntelliJ IDEA 编译方式除了手工点击编译按钮进行编译之外,还可以在“容器”运行之前配置一个编译事件,先编译后运行。在默认情况下,IntelliJ IDEA 也都是这样设置的,因此在实际开发中,咱们也不用太注意编译这件事。虽然 IntelliJ IDEA 没有实时编译(未设置时),但是这并不影响代码的自动检查。但是对于多个类之间的关联关系,还是要等Build或Rebuild触发的时候才会做相关检查的。
- 标注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 编译方式介绍及编译器的设置和选择的更多相关文章
- IntelliJ IDEA 编译方式介绍
编译方式介绍 相比较于 Eclipse 的实时自动编译,IntelliJ IDEA 的编译更加手动化,虽然 IntelliJ IDEA 也支持通过设置开启实时编译,但是不建议,因为太占资源了.Inte ...
- less及编译工具介绍
什么是LESSCSS LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量.继承.运算.函数等,更方便CSS的编写和维护. LE ...
- 比特(bit)、字,字节(B)存储单位之间的关系+其与操作系统位数的关系+不同编译器编译方式下数据类型的表示范围
1.在表示网络传输速度中与表示存储单位的不同: 表示存储单位时:1kB=1024B,但在网络中表示传输速度是1KB=1000B 2.下面介绍表示存储单位时的关系及其与操作系统位数的关系: 1B=8bi ...
- 【学习笔记】比特(bit)、字,字节(B)存储单位之间的关系+其与操作系统位数的关系+不同编译器编译方式下数据类型的表示范围
1.在表示网络传输速度中与表示存储单位的不同: 表示存储单位时:1kB=1024B,但在网络中表示传输速度是1KB=1000B 2.下面介绍表示存储单位时的关系及其与操作系统位数的关系: 1B=8bi ...
- [转]Debug 和 Release 编译方式的区别
本文主要包含如下内容: 1. Debug 和 Release 编译方式的本质区别 2. 哪些情况下 Release 版会出错 3. 怎样“调试” Release 版的程序 Debug 和 Releas ...
- Debug 和 Release 编译方式的本质区别
一.Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程 ...
- [Linux.NET]在CentOS 7.x中编译方式安装Nginx
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄罗斯大型的 ...
- Intellij Idea编译项目下的.java文件时的编码问题
Intellij Idea编译项目下的.java文件时的编码问题 原创 2015年07月22日 21:45:14 10510 由<编译.java文件时的编码问题>可知,在编译.java文件 ...
- 【转】预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
用VC++ 2008 编写C语言程序,编译出现错误: 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反) 解决方法: 建工程时 建立空项目 或者在项目设置里关闭预编 ...
随机推荐
- this,super,和继承
this是指当前对象的引用,super是指直接父类的引用 比如 我建造一个类 public class Person(){ private String name; private int age; ...
- React.js 小书 Lesson15 - 实战分析:评论功能(二)
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson15 转载请注明出处,保留原文链接和作者信息. 上一节我们构建了基本的代码框架,现在开始完善其 ...
- js中的break,continue,return
js中的break,continue, return (转) 面向对象编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢 ...
- POJ 3468——A Simple Problem with Integers——————【线段树区间更新, 区间查询】
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 86780 ...
- 配置phpstudy+phpstorm+xdebug环境
phpstorm版本: phpstudy版本: 具体的debug配置流程其实phpstorm里面已经明确的说过了,就是下图所示 所以 第一步: 首先要在phpstudy中开启xdebug扩展,所以要修 ...
- fabric 自动创建仓库并下载或更新代码
#!/usr/bin/python # -*- coding: utf-8 -* from fabric.api import * from fabric.contrib.files import * ...
- Linux防火墙/iptables使用
iptables是linux下的防火墙组件服务,这两天一直使用,总结一下使用方法: 1.检查iptables是否安装 rpm -qa|grep iptables 如果没有安装该组件,可以通过yum i ...
- .net编程知识点
一.编程思想 OOP(面向对象) 面向对象三大特性(多态如何体现)及五项原则 AOP(面向切面编程) 面向切面编程静态植入和动态植入 二.c#23种设计模式 三.Castle是针对.NET平台的一个开 ...
- Protocol Buffers序列化原理
1. 使用Varint编码数据,越小的数据,用少的字节编码.如小于128的用一个字节编码,大于128的用多个字节编码.同时,每个字节最高为1或者0表示是否为数字的一部分. 2. 由于负数的补码表示很大 ...
- java 判断图片的类型
// 这种方法如果遇到不是图片类型的文件会reader抛异常! public static void main(String[] args) throws IOException { // get i ...