1、确定一下JDK环境变量是否正确
何为是否正确,也就是源码所需要的版本和环境变量所需要的版本是否一致
2、确定引入的中间版本是否正确
同JDK
3、是否使用了正确的编译器
何为使用了正确的编译器,正常情况下不需要指定编译器,使用环境变量配置的JDK的编译器即可,如果有报错类似,“常量字符串过长”的问题,可能就需要切换编译器了
4、引入的类库(jar),千万不要有重复的或者多了,可能会导致问题
何为重复,也就是两个jar有相同的方法等,恰好路径也相同,可能会导致编译失败哦
何为多了,很明显也就是引入的jar多余实际需要的,我也没弄明白为啥,我就遇到过,实际只需要weblogic库中的两个jar,当时我是引入的全部,就编包失败了
5、Ant脚本本身是否有语法问题
6、是否编译的程序过大,导致内存溢出,适当调整内存大小
请各位大神补充指导。
引出一个问题,希望又看到的解决一下
背景:有个程序比较特殊(就不说为啥特殊了),需要使用JDT编译器进行编译
现象:执行编译Target时,实际没有对java文件进行编译,直接报错了,也有很详细、明确的报错提示
[javac] Compiling 315 source files to D:\temp\fsg\compile\fsg\WEB-INF\classes
Class org.eclipse.jdt.core.JDTCompilerAdapter loaded from parent loader (parentFirst)
[javac] Using JDT compiler
fileset: Setup scanner in dir C:\tomcat7\lib with patternSet{ includes: [**/*.jar] excludes: [] }
fileset: Setup scanner in dir D:fsg\WEB-INF\lib with patternSet{ includes: [**/*.jar] excludes: [] }
fileset: Setup scanner in dir D:\ant\lib with patternSet{ includes: [**/*.jar] excludes: [] }
fileset: Setup scanner in dir D:\lib with patternSet{ includes: [**/*.jar] excludes: [] }
[javac] Compilation arguments:
[javac] '-noExit'
[javac] '-classpath'
[javac] '-d'
[javac] 'D:\fsg\compile\fsg\WEB-INF\classes'
[javac] '-encoding'
[javac] 'GBK'
[javac] '-Xlint:deprecation'
[javac] '-Xlint:unchecked'
[javac]
[javac] The ' characters around the executable and arguments are
[javac] not part of the command.
[javac] Files to be compiled:
[javac] D:\fsg\src\com\Checker.java
[javac] D:\fsg\src\com\ServiceCheck.java
.......
BUILD FAILED
D:\build.xml:1413: Compile failed; see the compiler error output for details.
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1150)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:912)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor76.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
除以上信息,无更明确的提示了
build.xml:1413 脚本如下
<javac srcdir="${src.dir}" destdir="${java.classes.dest.dir}" includeAntRuntime="no" source="1.6" target="1.6"
debug="true" encoding="GBK" compiler="org.eclipse.jdt.core.JDTCompilerAdapter">
<compilerarg value="-Xlint:deprecation"/>
<compilerarg value="-Xlint:unchecked"/>
<classpath refid="tomcat.java.compile.classpath" />
<classpath refid="svn.classpath" />
</javac>
<echo message="编译java文件完成"></echo>
请留言,写下你的解决方案,老铁们、码农们!!!