转自:http://hi.baidu.com/yu270682210/blog/item/ef4283d5e977fecd51da4bbd.html
众所周知,Eclipse是带有自己的编译器的,而且我们一般都是使用这个默认自带的编译
器去编译自己的项目。但是这个编译器和Sun的javac是否一致呢?别说,还真有那么一点区别。
这是一个普通的 annotation:
-
@Target
(ElementType.METHOD)
-
@Retention
(RetentionPolicy.RUNTIME)
-
@Documented
-
public
@interface
Anno {
-
-
public
String itemName();
-
-
}
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Anno {
public String itemName();
}
下面是一个普通的类,使用了这个 annotation:
-
public
class
UseAnno
-
{
-
@Anno
(itemName=
"test"
)
-
public
void
testMethod() {
-
-
}
-
-
}
public class UseAnno
{
@Anno(itemName="test")
public void testMethod() {
//
}
}
这两个文件无论是用
eclipse
还是Sun的javac编译,都不会出错误。下面我们把annotation修改一下:
-
@Target
(ElementType.METHOD)
-
@Retention
(RetentionPolicy.RUNTIME)
-
@Documented
-
public
@interface
Anno {
-
-
public
String itemName();
-
public
Integer b =
new
Integer(
2
);
-
}
@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并创建一个新的Java项目。在菜单栏...
eclipse编译器1
这里我们将详细讨论如何解决Eclipse编译器中的中文乱码问题。 首先,我们需要了解ISO-8859-1编码。这是一种西欧字符集,只支持英文和其他少数语言的拉丁字符,而不包括中文字符。因此,当我们在jsp页面中输入中文并...
正在学习JAVA语法的各位同行,或许在调试JAVA代码时都遇到过这样的错误 ,eclipse编译器顶层的那行JAVA代码会显示声明的包XXXX与期望的包“”不匹配,如果您是个新手,遇到这样的错误,肯定无从着手,如何解决呢,我...
eclipse编译器2
用的自取 eclipse java开发编译器(ide)
eclipse编译器4
eclipse编译器3
Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但现在可通过插件作为其他计算机语言(如C++、Python)的开发工具,众多的插件支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有...
java开发纯净版编译器编译器java开发纯净版编译器编译器
8. **配置反编译器**:重启Eclipse后,进入"Window" -> "Preferences" -> "Java" -> "Installed JREs",选择你的JRE,点击"Source"标签页,添加一个新的附件路径,指向JD-Eclipse插件中的反编译库(通常在JD-Eclipse...
在本手册中,我们将探讨如何将Java反编译器集成到Eclipse中,以便在Eclipse内直接查看jar包内的class代码。 首先,我们需要了解什么是Java反编译器。反编译器是一种软件,它的作用是将已编译的字节码转换回源代码的...
eclipse的C++开发工具,很好用,强烈推荐
本文将详细介绍如何安装和使用Eclipse作为Java编译器。 首先,我们需要了解Java编译器的作用。Java编译器,通常指的是JDK(Java Development Kit)中的javac命令,它将源代码(.java文件)转化为字节码(.class文件...
百度网盘下载地址最新版,下载速度快,JAVA开发利器2020 ecplise下载地址百度网盘 2020 ecplise下载地址百度网盘2020 ecplise下载地址百度网盘
eclipse C++ 编译器 eclipse的C++开发工具,很好用,强烈推荐。
### Eclipse+Keil 编译器开发调试STM32程序详解 #### 一、概述 在嵌入式系统开发领域,使用Eclipse结合Keil的ARMCC编译器进行STM32微控制器程序的开发与调试是一种高效且灵活的方式。这种方法不仅限于STM32,也...
Java反编译器Eclipse插件是开发人员在进行代码逆向工程时的有力工具,它允许用户查看和理解已编译的Java类文件的源代码。Eclipse作为一款广泛使用的Java集成开发环境(IDE),提供了丰富的扩展功能,其中就包括了反...
- 在Eclipse中配置编译器,具体操作为:Window -> Preferences -> C/C++ -> Build -> Settings - 在弹出的对话框中,选择“Tool Settings”选项卡下的“Tool Chain Editor”,添加一个新的工具链,并选择“GNU ELF...
eclipse编译器的快捷键使用说明,包eclipse所有的快捷键,学习后能快速上手eclipse,大大提高开发效率