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)\Java\jre1.8.0_211\lib\ecj-4.11.jar" -7 %*

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

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

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

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:\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。

最新文章

  1. js压缩xml字符串,将xml字符串转换为xml对象,将xml对象转换为json对象
  2. svn快速教程
  3. 深入理解openstack网络架构(4)-----连接到public network
  4. TPL实现Task.WhileAll扩展方法
  5. HDU 5033 Building --离线+单调栈
  6. Sublime Text 3 Build 3065 All System CracKed By Hmily[LCG]
  7. APK软件反编译 去广告
  8. Spark Streaming揭秘 Day30 集群模式下SparkStreaming日志分析
  9. 基于Delphi的Socket I/O模型全接触 good
  10. pthread_rwlock_t读写锁函数说明
  11. Protobuf完整实例
  12. SurfaceView 和 View 区别
  13. 使 httpClient 支持中文
  14. JS拖动技术--- 关于setCapture
  15. ThinkPHP集成万象优图
  16. java小白进阶安卓第一天
  17. java 二叉树实现
  18. asp.net core 开发的https证书服务-agilelabs.net
  19. Java上传Excel并解析
  20. DOS界面下的翻译软件制作

热门文章

  1. Spark实现分组TopN
  2. 深入理解MDL元数据锁
  3. Odoo报表的report标签和报表格式定义
  4. MySQL基本库表管理
  5. win10台式机rtl8188eu(FW 150 UM V2.0)无线网卡无法连接wifi(无法连接到这个网络)
  6. @TableName(mybatis-plus中的注解)
  7. mysql5.7兼容老版本不校验日期等字段
  8. JMeter5.1开发http协议接口之json
  9. vue响应数据的原理
  10. Linux下进程间通信方式——共享内存