`
iamlotus
  • 浏览: 106958 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Eclipse compiler的一个bug

阅读更多

<!--StartFragment--> <!--EndFragment-->

以下程序用javac编译运行后没有问题,正确输出 0 1,而在eclipse中报错后直接挂了

public class Construct {

    public static void main(String[] args) {
        Construct$1 c1 = new Construct$1();
        System.out.println(c1.value());

        C c = new C() {

            @Override
            public int value() {
                return 0;
            }
        };

        System.out.println(c.value());
    }
}

abstract class C {
    public abstract int value();
}

class Construct$1 {
    public int value() {
        return 1;
    }
}

 

其实对比下编译结果就能看出原因,在程序中已经有个Construct$1的情况下,javac知道那个匿名内部类的编译名应该为Construct$2。而eclipse build-in compiler貌似没作这个检查,所以在eclipsebin路径上只有Construct$1一个输出,跑起来自然杯具。

 

<!--StartFragment--> <!--EndFragment-->

测试环境 mac java 1.7.0_45,  eclipse版本为Version: Juno Service Release 2Build id: 20130225-0426

0
0
分享到:
评论

相关推荐

    eclipse离线插件compiler反编译jar包进行debug调试

    在这个场景中,我们使用的插件是"decompiler_1.0.3",它是一个Eclipse插件,专门用于帮助用户反编译class文件。 安装该插件的方法通常是通过Eclipse的内置软件更新功能,但由于是离线环境,我们需要手动下载解压...

    intellij-bug-eclipse-compiler-warnings:https 的示例项目

    标题 "intellij-bug-eclipse-compiler-warnings:https 的示例项目" 指向的是一个关于在 IntelliJ IDEA 中使用 Eclipse 编译器时遇到警告问题的项目。描述提到,该项目展示了在使用 javac(Java 编译器)与 Eclipse ...

    zookeeper-3.4.6 eclipse

    Apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给...

    eclipse最佳设置

    **Eclipse最佳设置详解** Eclipse是一款广泛应用的开源集成开发环境(IDE),尤其在Java开发者中备受青睐。...通过对这些设置的优化,我们可以创建一个高效、个性化的开发环境,提升开发体验和工作效率。

    eclipse maven3插件

    Eclipse Maven3插件,全称为Maven Integration for Eclipse(简称m2e),是Eclipse IDE中的一个核心插件,用于支持Apache Maven项目构建和管理工具。它将Maven的强大功能无缝集成到Eclipse环境中,使得开发人员可以...

    详细品味eclipse性能优化

    以上就是对"Eclipse性能优化"的详细解析,通过这些策略,开发者可以打造出一个更加高效、流畅的开发环境。实践中,要根据具体情况进行调整,不断试验和优化,找到最适合自己的设置。记住,每个小改进都能累积成显著...

    JAL compiler-开源

    5. `jal.spec.in`:这可能是一个RPM打包规范文件,用于在Linux系统上创建JAL Compiler的软件包。 6. `stamp-h.in`:这是一个用于标记头文件更新的文件,通常在编译过程中使用。 7. `aclocal.m4`:这是Autoconf的宏...

    eclipse与tomcat、weblogic远程调试小结(windows系统)

    - 创建一个新的`Remote Java Application`配置。 - 在`Project`字段中选择你的项目。 - 在`Connection`部分,填入远程服务器的IP地址和调试端口(如8000)。 - 确保勾选`Use all breakpoints`,以便捕获所有断点...

    joc eclipse plugin

    在Eclipse中使用Jocky也非常简单,任何一个Java工程,选中工程通过右键菜单,都可以出现Jocky的快捷菜单: 在Eclipse中的右键菜单&gt; 在Eclipse中的属性设置&gt; 事实上,在Eclipse中使用Jocky时,...

    ecplice-lombok_1.18.12.zip

    Lombok 1.18.12是该工具的一个版本,可能包含了一些性能优化和bug修复。 在Java开发中,编写getter和setter等样板代码是一项繁琐的工作。Lombok的目标就是消除这种冗余,让开发者能够专注于核心业务逻辑。其工作...

    x86_64-w64-mingw32-gdb-7.1.90.20100730.zip

    MinGW,全称为Minimalist GNU for Windows,是一个可自由使用且开源的Windows兼容API的实现,提供了一套完整的GCC(GNU Compiler Collection)工具链,使得开发者可以在Windows下使用GCC进行开发。而mingw64是MinGW...

    C++ 编译调试环境离线安装包MinGW+gdb+libexpat

    MinGW是GNU Compiler Collection(GCC)在Windows平台上的一个移植版本,提供了g++编译器,用于将C++源代码编译为可执行程序。它还包括其他的工具,如make,用于自动化构建过程,以及头文件和库,使得开发者可以在...

    apache-maven-3.8.7

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM),能够管理项目的构建、报告和文档,简化软件开发过程。Maven 3.8.7 是该工具的一个特定版本,...

    MinGW绿色免安装

    MinGW(Minimalist GNU for Windows)是一个开源项目,旨在为Windows平台提供一套完整的GNU工具集,包括GCC(GNU Compiler Collection)编译器、GDB调试器等,使得开发者能够在Windows环境下编写、编译和调试C、C++...

    MinGW-w64离线资源包

    MinGW-w64的核心组件是GCC(GNU Compiler Collection),这是一个广泛使用的编译器系统,支持多种编程语言,包括C、C++、Fortran等。在MinGW-w64环境下,GCC能够生成原生的Windows可执行文件,而无需依赖Microsoft ...

    avr8-gnu-toolchain-3.6.2.1778-win32.any.x86.zip

    1. **GCC(GNU Compiler Collection)**:这是一个开源的编译器集合,用于将高级语言(如C、C++或Ada)转换为机器代码。在这个工具链中,GCC为AVR处理器定制,能生成针对AVR硬件的高效代码。 2. **GDB(GNU ...

    MinGW-5.1.4

    MinGW(Minimalist GNU for Windows)是一个开源项目,旨在为Windows操作系统提供一个GCC(GNU Compiler Collection)编译环境。MinGW-5.1.4是该项目的一个特定版本,发布于2014年,它包含了GCC 5.1.0和其他相关工具...

    Dev C++ 6.3安装包,DevC++智能开发平台

    这个6.3版本是其历史上的一个重要里程碑,它结合了GCC编译器(GNU Compiler Collection)和一个用户友好的界面,使得C++编程变得更加便捷。 在安装Dev C++ 6.3时,首先你需要下载压缩包中的"Dev-Cpp_6.3.exe"文件。...

    测试系统跑代码的文件需要

    1. **构建环境**:首先,你需要一个支持C++编译的环境,如GCC(GNU Compiler Collection)或Clang。这些编译器能够将源代码转换为可执行程序。在Windows上,可以使用MinGW或MSVC;在Linux或macOS上,通常内置了GCC或...

    编译tomcat源码所需jar包

    1. **JDK**:Tomcat是用Java语言编写的,所以首先你需要安装一个兼容的JDK(Java Development Kit),通常建议使用与Tomcat版本相匹配的JDK版本,例如Tomcat 9需要JDK 8或更高版本。 2. **Ant**:Apache Ant是Java...

Global site tag (gtag.js) - Google Analytics