"Class not found: javac1.8"问题总结

    开始工作有大半年了,总是在向网络索取知识,是时候贡献点东西了。这是本吊丝第一次写原创博客,各种板砖砸过来。

言归正传,公司新配了笔记本 :

                  软件环境: WIN 7 64 bit , 所以装了 最新1.8的jdk , adt-bundle-widows-x86_64-20140321  、用一下午时间升级了sdk 到24.3.4   ant 2.0 编译工程提示:

                    Class not found: javac1.8

                 尝试的解决方法:

                  1.百度谷歌后找到的答案都是: ant版本低于1.7可是哥的ant是2.0的,所以更新ant的路是走不通了;

                  2.别的同事一般遇到这种问题直接找it把java 换成1.7的就ok 了,可以尝试。但是我想深入研究一下ant的编译过程,所以没有妥协;

最终的解决方案:

找到ant下的uibuild.xml,找到这一行:<matches pattern="1\.[56]" string="${java.specification.version}"/>,在56后面加上8保存后,重新编译即可。


 

  问题分析:

(1)打开sdk目录下的ant文件夹下的uibuildxml文件,根据编译 过程的提示找到了出错的那一步是在compile中的fork="${need.javac.fork}"> 有问题:

    <target name="compile" depends="-build-setup, -pre-compile">
        <javac encoding="${java.encoding}"
                source="${java.source}" target="${java.target}"
                debug="true" extdirs="" includeantruntime="false"
                destdir="${out.classes.absolute.dir}"
                bootclasspathref="project.target.class.path"
                verbose="${verbose}"
                fork="${need.javac.fork}">
            <src path="${source.absolute.dir}" />
            <compilerarg line="${java.compilerargs}" />
        </javac>

(2)于是乎开始找定义${source.absolute.dir}的地方:

    <condition else="false" property="need.javac.fork">
        <and>
            <matches pattern="1\.[56]" string="${java.specification.version}"/>
            <not>
                <os family="unix"/>
            </not>
        </and>
    </condition>

(3)恍然大悟 原来是指定了1.5和1.6版本的,于是我就在56后面加了 个8, 保存后 重新编译,哈哈成功了。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值