IntelliJ IDEA 编译方式介绍

编译方式介绍

相比较于 Eclipse 的实时自动编译,IntelliJ IDEA 的编译更加手动化,虽然 IntelliJ IDEA 也支持通过设置开启实时编译,但是不建议,因为太占资源了。IntelliJ IDEA 编译方式除了手工点击编译按钮进行编译之外,还有就是在容器运行之前配置上一个编译事件,先编译后运行。默认下 IntelliJ IDEA 也都是这样的设置,所以实际开发中你也不用太注意编译这件事。虽然 IntelliJ IDEA 没有实时编译,但是对于代码检查完全是没有影响。但是多个类之间的关联关系还是要等 Make 或 Rebuild 触发的时候才会做相关检查的。

在 IntelliJ IDEA 里,编译方式一共有三种:

Compile:对选定的目标(Java 类文件),进行强制性编译,不管目标是否是被修改过。
Rebuild:对选定的目标(Project),进行强制性编译,不管目标是否是被修改过,由于 Rebuild 的目标只有 Project,所以 Rebuild 每次花的时间会比较长。
Make:使用最多的编译操作。对选定的目标(Project 或 Module)进行编译,但只编译有修改过的文件,没有修改过的文件不会编译,这样平时开发大型项目才不会浪费时间在编译过程中。

编译触发按钮

如上图标注 1 所示,Compile 的操作有:Compile 指定类
如上图标注 1 所示,Rebuild 的操作有:Rebuild Project
如上图标注 1 所示,Make 的操作有:Make Project、Make Module

运行之前的编译

如上图所示,IntelliJ IDEA 默认在运行 JUnit 之前会先进行 Make 操作。

如上图所示,IntelliJ IDEA 默认在运行 tomcat 之前会先进行 Make 操作。

编译器的设置和选择

上图标注 1 所示,也是我们本文前面讲的,IntelliJ IDEA 是支持自动编译的,默认是不开启的,也建议不用开启,原因前面已经说了。
上图标注 2 所示,设置编译 heap 大小,默认是 700,建议使用 64 位的用户,在内存足够的情况下,建议改为 1500 或以上。如果你在编译的时候出错,报:OutOfMemoryError,一般也是要来改这个地方。
上图标注 3 所示,还可以设置编译时的 VM 参数,这个你可以根据需求进行设置,一般人是用不上的。

如上图标注 1 所示,可以添加目录 或 文件进行编译排除。
在项目中,如果有任何一个可编译的文件无法编译通过,则 IntelliJ IDEA 是无法运行起来的,必须等你全部问题解决,编译通过之后才可运行。但是可能开发过程中,某一个包目录的文件编译无法通过,但是我们又不急着改,那我们就可以考虑把该包加入到排除编译列表中,则项目就可以运行起来。

如上图动态 Gif 所示,IntelliJ IDEA 支持常见的几种编译器:Javac、Eclipse、Ajc 等。默认是 Javac,也推荐使用 Javac。
Project bytecode version 针对项目字节码编译版本,一般选择的是当前项目主 JDK 的版本。
Per-module bytecode version 可以针对 Project 下各个 Module 的特殊需求单独设置不同的 bytecode version,前提是电脑上必须有安装对应的 JDK 版本。

 

 

 

Error:java: Compilation failed: internal java compiler error

 

http://www.cnblogs.com/faunjoe88/p/5735027.html

http://blog.csdn.net/wave_1102/article/details/47671019

java: -source 1.5 中不支持 lambda 表达式
(请使用 -source 8 或更高版本以启用 lambda 表达式)

 

时间: 2024-10-23 03:37:31

IntelliJ IDEA 编译方式介绍的相关文章

深入理解.NET 的JIT编译方式

编译 CLR只执行本机的机器代码.有两种方式产生本机的机器代码:实时编译(JIT)和预编译方式(产生native image).下面,我想谈谈JIT.CLR使用类型的方法表来路由所有的方法调用.类型的方法表由多个入口项组成.每个入口项指向一个唯一的存根例程(stub routine).初始化时,每个存根例程包含一个对于CLR的JIT编译器的调用(它由内部的PreStubWorker程序公开).在JIT编译器生成本机代码后,它会重写存根例程,插入一个jmp指令跳转到刚才JIT编译器的代码.只有当要

Oracle存储过程本地编译方式

  通常将Oracle存储过程编译为本地编译方式的测试记录. 测试用表: ? 1 2 3 4 5 6 7 SQL> create table t1(rid number);    Table created    SQL> create table t_n(rid number);    Table created 测试用的存储过程: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 create or replace procedure pro_xcl(p1 varchar2)

Javascript调用函数方法的几种方式介绍

 这篇文章主要介绍了Javascript调用函数方法的几种方式介绍,本文讲解了func().(function(arg){})(window).func.bind(sth)().func.call().func.apply()等5种方式,需要的朋友可以参考下     javascript语法灵活,同一个功能有五六种实现方式并不罕见,然后再加上有些反人类的原型继承和异步特性,就更让人一头雾水了.我经常搞不清楚call,apply之间的区别,今天就记录一下,以免再忘了. 在javascript中,方

Intellij idea编译后没有run这个程序的选项

问题描述 Intellij idea编译后没有run这个程序的选项 RT 右上角显示的是packetTarrif而不是packetTarrif3 我想运行packetTarrif3 但无论如何就是不出这个选项 只能运行packetTarrif 明明编译过了 才从eclipse换的intelli一头雾水... 解决方案 参考:https://segmentfault.com/q/1010000000597937 根据其中的截图配置下 解决方案二: run之后你要配置一下.上面工具有.如需更多帮助,

C#中的预编译指令介绍

原文:C#中的预编译指令介绍 1.#define和#undef      用法:           #define DEBUG           #undef DEBUG     #define告诉编译器,我定义了一个DEBUG的一个符号,他类似一个变量,但是它没有具体的值,可以将它看为一个符号而已.#undef就是删除这个符号的定义.如果符号DEBUG没定义过,则#undef不起作用,否则#define不起作用.二者都必须放在源代码之前.二者的顺序看代码的顺序:     #define D

C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍

原文:C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍 在前面一系列文章中,我们可以看到微信自定义菜单的重要性,可以说微信公众号账号中,菜单是用户的第一印象,我们要规划好这些菜单的内容,布局等信息.根据微信菜单的定义,我们可以看到,一般菜单主要分为两种,一种是普通的Url菜单(类型为View的菜单),一种是事件菜单(类型为Click的菜单),一般情况下,微信的Url菜单,是无法获得用户的任何信息的,但微信用户信息非常重要,因此也提供了另外一种方式(类似重定向的方式)来给我们使用,本篇

小米MI Pay怎么刷卡支付,小米MI Pay两种刷卡方式介绍

MI Pay刷卡流程 相较于传统的刷卡方式,MI Pay更加便捷安全,手机就是银行卡. MI Pay的两种刷卡方式 1.息屏或锁屏状态下,双击Home键呼出MI Pay,选择需要使用的银行卡,根据提示验证指纹之后即可靠近POS刷卡.(注:6.8.22开发版及以后版本支持双击Home键唤起MI Pay) 2.在收银员设置好POS之后,将手机靠近POS的感应区,手机上会自动弹出MI Pay页面.选择需要使用的银行卡,根据提示验证指纹之后即可靠近POS刷卡. 小米MI Pay怎么刷卡支付,小米MI P

jQuery中ajax的4种常用请求方式介绍_AJAX相关

AJAX 是一种与服务器交换数据的技术,可以在补充在整个页面的情况下更新网页的一部分. jQuery中ajax的4种常用请求方式: 1.$.ajax()返回其创建的 XMLHttpRequest 对象. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息.详细参数选项见下. 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml"). 实例: 保存数据到服务器,成功时显示信息. $.aj

Java的三种编译方式

通常Java有三种编译方式,编译方式不同,那么得到的.class的大小也不同. 1)默认编译方式:javac A.java 2)  调试编译方式:javac -g A.java 3)  代码编译方式:javac -g:none A.java 案例如下:类A public class A{ public static void main(String args[]){ for(int i=0;i<100000;i++){ A a = new A(); } } } 通过上面这三种编译方式,得到的.c