javac在程序中的使用方法

使用工具编译.java文件

public static void compileModifiedFiles(List<String> modifiedFiles, String srcRootPath, String classRootPath) {
        File classRoot = new File(classRootPath);
        if (!classRoot.exists()) {
            classRoot.mkdir();
        }
        String sbUrls = System.getProperty("java.class.path");

        String[] arg = new String[] { "-encoding", COMP_CHARSET, "-d", classRootPath, "-sourcepath", srcRootPath, "-cp", sbUrls.toString(),
                "" };
        for (String modifiedFile : modifiedFiles) {
            if (null == modifiedFile || 0 == modifiedFile.length()) {
                continue;
            }
            // 每次编译前判断该类是否已经编译过了(在其它类中有引用,则会提前编译)
	    //利用.class文件肯定是在.java文件之后才生成
            String classFile = classRootPath + modifiedFile.substring(srcRootPath.length(), modifiedFile.length() - 5) + ".class";
            if (new File(modifiedFile).lastModified() < new File(classFile).lastModified()) {
                // 已经编译过,跳过
                continue;
            }

            arg[8] = modifiedFile;
            System.out.println("compiling file : " + modifiedFile);
            int status = Main.compile(arg);
            if (status != 0) {
                throw new RuntimeException("error!");
            }
        }
    }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值