Ant编译java项目时无法导入rt.jar中的类
2015-07-23 00:00
239 查看
摘要: Ant编译java项目时无法导入rt.jar中的类
最近在使用ant做打包时发现,在引用 com.sun.org.apache.xml.internal.security.utils.Base64 类时,无法编译通过,但是在eclipse中却可以正常编译。
以下是在使用ant打包时报错部分。
后在漫长的搜索中,发现有网友提出:javac在编译代码时,当他尝试从rt.jar中找寻对应的类文件时,他会默认从对应的符号表文件ct.sym (同样在jre/lib/下)中查找该类是否存在,由于ct.sym中有意或无意的遗失了部分rt.jar中的类,包括我使用的com.sun.org.apache.xml.internal.security.utils.Base64,因此导致编译报错。
解决方法就是通知javac编译器,在编译代码时,忽略该符号表ct.sym, 直接查找rt.jar,通过给javac传入对应的参数完成:-XDignore.symbol.file
最近在使用ant做打包时发现,在引用 com.sun.org.apache.xml.internal.security.utils.Base64 类时,无法编译通过,但是在eclipse中却可以正常编译。
以下是在使用ant打包时报错部分。
[javac] [正在装入 com\eos\data\datacontext\IUserObject.class(com\eos\data\datacontext:IUserObject.class)] [javac] E:\build\java\com\bos\rca\ccd\app\approve\pycredit\PycreditPersonalComponent.java:36: 软件包 com.sun.org.apache.xml.internal.security.utils 不存在 [javac] import com.sun.org.apache.xml.internal.security.utils.Base64; [javac]
后在漫长的搜索中,发现有网友提出:javac在编译代码时,当他尝试从rt.jar中找寻对应的类文件时,他会默认从对应的符号表文件ct.sym (同样在jre/lib/下)中查找该类是否存在,由于ct.sym中有意或无意的遗失了部分rt.jar中的类,包括我使用的com.sun.org.apache.xml.internal.security.utils.Base64,因此导致编译报错。
解决方法就是通知javac编译器,在编译代码时,忽略该符号表ct.sym, 直接查找rt.jar,通过给javac传入对应的参数完成:-XDignore.symbol.file
<!--编译当前扩展的task类--> <javac fork="no" encoding="UTF-8" executable="${JAVA_HOME}/bin/javac" memoryMaximumSize="1024m" source="${javac_source_version}" target="${javac_target_version}" destdir="E:/build/bin" debug="on" nowarn="on" deprecation="on" verbose="yes"> <classpath refid="compile_classpath" /> <compilerarg value="-XDignore.symbol.file"/> <src path="E:/build/java" /> </javac>
相关文章推荐
- JavaScript 组件之旅(三):用 Ant 构建组件
- 使用YUI+Ant 实现JS CSS压缩
- ubuntu 14.04 安装 apache ant教程
- Windows下apache ant安装、环境变量配置教程
- java ant 配置及构建项目图文教程
- ant使用指南详细入门教程
- ANT集成SVNANT访问SVN(Subversion)
- 【笔记】试玩 cocos2d-x-3.0beta on android
- 使用Ant构建SSH项目(Intellij IDEA版)
- Android ANT多渠道打包
- ant 编译报 Cannot load 63-bit SWT libraries on 32-...
- 使用Ant构建简单项目
- Android项目导出jar包的小技巧
- Ant编译android,并Proguard代码混淆,v4混淆配置
- Ant基础知识
- Ant小总结
- Ant的环境配置
- Xdoclet结合Ant使用
- ant 打war 包