zoukankan      html  css  js  c++  java
  • 独立使用 ecj

    ECJ 是 Eclipse Compiler for Java 的缩写,是 JavaTM 认可的 Java 编译工具(类似 javac)。可以单独下载使用。

    下载地址: http://mirrors.ustc.edu.cn/eclipse/eclipse/downloads/drops4/R-4.11-201903070500/ecj-4.11.jar

    (使用 ustc 的 mirror,然后在 eclipse 的下载里表中找到独立的 ecj 包)

    因为是 jar 包,所以,需要 jre 来执行,我写了个小脚本:

    @echo off
    java -jar "C:Program Files (x86)Javajre1.8.0_211libecj-4.11.jar" -7 %*

    如上所示,我把它拷贝到了 java 的标准 lib 里面放着了。

    上面脚本的意思呢就是,使用 java 执行这个包,然后把所有的参数都传进来。其中 -7 是指定编译使用的 java 版本为 java7,目前 ecj 支持 java9 及以前的所有 java 版本。

    为了能在 cmd 下直接使用,我把这个脚本命名为 ecj.cmd, 放在了: C:Program Files (x86)Common FilesOracleJava

    PS:用同样的方法来使用 openJDK 包里的 javac, 用起来也方便的

    至于为什么不用 javac。。。java 的安装体验实在太差。。。不知道这算不算理由。。。

    尝试编译下面的代码:

    public class Test{
        public void method()
        {
            new testInterface()
            {
                public void info()
                {
                    System.out.println("Hello");
                }
            }.info();
        }
    
        public static void main(String[] args)
        {
            Test test = new Test();
            test.method();
        }
    }
    
    interface testInterface
    {
        public void info();
    }

    没毛病:

    D:ProjectJavainner>ecj Test.java
    
    D:ProjectJavainner>java Test
    Hello

    另外一些情况,我们的编译可能用到额外的 jar 包:

    ecj -cp surrounscm-api.jar GridPaneApplication.java

    用上面指令编译的 class,在执行时要这样添加 classpath:

    java -cp .;libsurroundscm-api.jar GetMiniAutosar

    也就是,不知道为啥,但是需要先添加当前目录作为 classpath。

  • 相关阅读:
    c#中的命名空间、类
    C#编写“hello,world”
    django1.9中manage.py的操作命令
    JS原生Ajax操作(XMLHttpRequest)
    Jquery百宝箱
    jQuery与Ajax入门
    JSON
    JSTL与EL表达式
    知识点整理
    Servlet与JSP进阶
  • 原文地址:https://www.cnblogs.com/pied/p/10985837.html
Copyright © 2011-2022 走看看