`
tkiicpp
  • 浏览: 84295 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Eclipse的编译器

阅读更多
转自:http://hi.baidu.com/yu270682210/blog/item/ef4283d5e977fecd51da4bbd.html
众所周知,Eclipse是带有自己的编译器的,而且我们一般都是使用这个默认自带的编译 器去编译自己的项目。但是这个编译器和Sun的javac是否一致呢?别说,还真有那么一点区别。

这是一个普通的 annotation:

Java代码
  1. @Target (ElementType.METHOD)   
  2. @Retention (RetentionPolicy.RUNTIME)   
  3. @Documented   
  4. public @interface Anno {   
  5.            
  6.      public String itemName();   
  7.        
  8. }  
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Anno {
  
 public String itemName();
 
}


下面是一个普通的类,使用了这个 annotation:

Java代码
  1. public class UseAnno   
  2. {   
  3.      @Anno (itemName= "test" )   
  4.      public void testMethod() {   
  5.          //   
  6.      }   
  7.   
  8. }  
public class UseAnno
{
 @Anno(itemName="test")
 public void testMethod() {
  //
 }

}


这两个文件无论是用eclipse 还是Sun的javac编译,都不会出错误。下面我们把annotation修改一下:

Java代码
  1. @Target (ElementType.METHOD)   
  2. @Retention (RetentionPolicy.RUNTIME)   
  3. @Documented   
  4. public @interface Anno {   
  5.            
  6.      public String itemName();   
  7.      public Integer b = new Integer( 2 );   
  8. }  
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Anno {
  
 public String itemName();
 public Integer b = new Integer(2);
}


然后在 eclipse 里编译,正常通过。运行的时候也不会出错误,而且运行时,用反射的方式也能正确地得到 annotation 里定义的那个变量。

但是如果你用 javac 编译呢?就会出现错误,无法编译,提示:

注释 Anno <clinit> 缺少。

关于 clinit ,大家可以 google 一下资料,我查到的资料是 javac 在处理 clinit 的时候有一些 bug,可能上面这种情况就是这个 bug 的表现症状之一了。

(之所以认为它是编译器的 bug,是因为 eclipse 编译后,在 java 环境中可以正确运行。)

所以:

1、如果可以的话,尽量不使用 eclipse 自带的编译器。
2、如果可以的话,使用 Netbeans 应该是正确的选择,毕竟都是出自Sun的手中。
3、养成持续集成的习惯。否则如果到后期,才发现一些特性在 javac 的编译中会有差别,损失可就大了。
分享到:
评论

相关推荐

    配置Eclipse编译器教程

    配置Eclipse编译器是每个开发者初次使用Eclipse时必须经历的步骤,它确保了项目能够正确地编译和运行。本文将详细介绍如何配置Eclipse编译器,帮助你快速上手。 首先,打开Eclipse并创建一个新的Java项目。在菜单栏...

    eclipse编译器1

    eclipse编译器1

    Eclipse编译器中文乱码解决

    这里我们将详细讨论如何解决Eclipse编译器中的中文乱码问题。 首先,我们需要了解ISO-8859-1编码。这是一种西欧字符集,只支持英文和其他少数语言的拉丁字符,而不包括中文字符。因此,当我们在jsp页面中输入中文并...

    eclipse编译器报错:声明的包XXXX与期望的包“”不匹配

    正在学习JAVA语法的各位同行,或许在调试JAVA代码时都遇到过这样的错误 ,eclipse编译器顶层的那行JAVA代码会显示声明的包XXXX与期望的包“”不匹配,如果您是个新手,遇到这样的错误,肯定无从着手,如何解决呢,我...

    eclipse编译器2

    eclipse编译器2

    eclipse编译器 绿包

    用的自取 eclipse java开发编译器(ide)

    eclipse编译器4

    eclipse编译器4

    eclipse编译器3

    eclipse编译器3

    Java开发Eclipse编译器源程序

    Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但现在可通过插件作为其他计算机语言(如C++、Python)的开发工具,众多的插件支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有...

    eclipse编译器

    java开发纯净版编译器编译器java开发纯净版编译器编译器

    eclipse反编译器与安装方法

    8. **配置反编译器**:重启Eclipse后,进入"Window" -&gt; "Preferences" -&gt; "Java" -&gt; "Installed JREs",选择你的JRE,点击"Source"标签页,添加一个新的附件路径,指向JD-Eclipse插件中的反编译库(通常在JD-Eclipse...

    java反编译器 以及Eclipse安装手册

    在本手册中,我们将探讨如何将Java反编译器集成到Eclipse中,以便在Eclipse内直接查看jar包内的class代码。 首先,我们需要了解什么是Java反编译器。反编译器是一种软件,它的作用是将已编译的字节码转换回源代码的...

    eclipse C++编译器(2)

    eclipse的C++开发工具,很好用,强烈推荐

    eclipseJAVA编译器安装文件

    本文将详细介绍如何安装和使用Eclipse作为Java编译器。 首先,我们需要了解Java编译器的作用。Java编译器,通常指的是JDK(Java Development Kit)中的javac命令,它将源代码(.java文件)转化为字节码(.class文件...

    2020 ecplise下载地址百度网盘

    百度网盘下载地址最新版,下载速度快,JAVA开发利器2020 ecplise下载地址百度网盘 2020 ecplise下载地址百度网盘2020 ecplise下载地址百度网盘

    eclipse C++编译器(3)

    eclipse C++ 编译器 eclipse的C++开发工具,很好用,强烈推荐。

    Eclipse+Keil编译器开发调试STM32程序

    ### Eclipse+Keil 编译器开发调试STM32程序详解 #### 一、概述 在嵌入式系统开发领域,使用Eclipse结合Keil的ARMCC编译器进行STM32微控制器程序的开发与调试是一种高效且灵活的方式。这种方法不仅限于STM32,也...

    java反编译器Eclipse插件

    Java反编译器Eclipse插件是开发人员在进行代码逆向工程时的有力工具,它允许用户查看和理解已编译的Java类文件的源代码。Eclipse作为一款广泛使用的Java集成开发环境(IDE),提供了丰富的扩展功能,其中就包括了反...

    eclipse c++安装,保证教你安装成功

    - 在Eclipse中配置编译器,具体操作为:Window -&gt; Preferences -&gt; C/C++ -&gt; Build -&gt; Settings - 在弹出的对话框中,选择“Tool Settings”选项卡下的“Tool Chain Editor”,添加一个新的工具链,并选择“GNU ELF...

    eclipse快捷键使用说明

    eclipse编译器的快捷键使用说明,包eclipse所有的快捷键,学习后能快速上手eclipse,大大提高开发效率

Global site tag (gtag.js) - Google Analytics