獨立使用 ecj

ECJ 是 Eclipse Compiler for Java 的縮寫,是 JavaTM 承認的 Java 編譯工具(相似 javac)。能夠單獨下載使用。java

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

(使用 ustc 的 mirror,而後在 eclipse 的下載裏表中找到獨立的 ecj 包)eclipse

 

由於是 jar 包,因此,須要 jre 來執行,我寫了個小腳本:工具

@echo off
java -jar "C:\Program Files (x86)\Java\jre1.8.0_211\lib\ecj-4.11.jar" -7 %*

如上所示,我把它拷貝到了 java 的標準 lib 裏面放着了。spa

上面腳本的意思呢就是,使用 java 執行這個包,而後把全部的參數都傳進來。其中 -7 是指定編譯使用的 java 版本爲 java7,目前 ecj 支持 java9 及之前的全部 java 版本。code

爲了能在 cmd 下直接使用,我把這個腳本命名爲 ecj.cmd, 放在了: C:\Program Files (x86)\Common Files\Oracle\Javablog

 

至於爲何不用 javac。。。java 的安裝體驗實在太差。。。不知道這算不算理由。。。ip

 

嘗試編譯下面的代碼:cmd

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();
}

沒毛病:io

D:\Project\Java\inner>ecj Test.java

D:\Project\Java\inner>java Test
Hello

另一些狀況,咱們的編譯可能用到額外的 jar 包:

ecj -cp surrounscm-api.jar GridPaneApplication.java

用上面指令編譯的 class,在執行時要這樣添加 classpath:

java -cp .;lib\surroundscm-api.jar GetMiniAutosar

也就是,不知道爲啥,可是須要先添加當前目錄做爲 classpath。

相關文章
相關標籤/搜索