我在Generics的代码中使用了Collections。当尝试在build.xml中编译该java文件时,它在泛型中显示错误并且它说它不是语句。我使用的是Apache-Ant-1.6.5,我只安装了JDK 1.5。我知道泛型将支持jdk1.5,但它显示错误。以下是我为代码
获得的错误代码:
Map<String, String> inputconfigmap =
new LinkedHashMap<String, String>();
例外:
compile:
[mkdir] Created dir: D:\GenericPreProcessor\Source\classes
[javac] Compiling 49 source files to D:\GenericPreProcessor\Source\classes
[javac] D:\GenericPreProcessor\Source\src\com\dnb\genericpreprocessor\fileprocessor\FixedLength
FileProcessor.java:187: not a statement
[javac] Map<String, String> inputconfigmap =
new LinkedHashMap<String, String>();
我按照你的建议做了,但我在控制台中得到了以下内容。
控制台:
d:\ GenericPreProcessor \来源&GT;蚂蚁
Buildfile:build.xml
[echo] JVM版本是1.5
[echo]目标编译是$ {ant.build.javac.target}
清洁:
[删除]删除目录D:\ GenericPreProcessor \ Source \ classes
cleanJar:
编译:
[mkdir]创建了dir:D:\ GenericPreProcessor \ Source \ classes
[javac]将49个源文件编译为D:\ GenericPreProcessor \ Source \ classes
[javac] javac:无效的目标释放:1.5
[javac]用法:javac
[javac]可能的选项包括:
[javac] -g生成所有调试信息
[javac] -g:none不生成调试信息
[javac] -g:{lines,vars,source}仅生成一些调试信息
[javac] -nowarn不发出警告
[javac] -verbose输出有关编译器正在执行的操作的消息
[javac] -deprecation使用弃用API的输出源位置
[javac] -classpath指定查找用户类文件的位置
[javac] -sourcepath指定查找输入源文件的位置
[javac] -bootclasspath覆盖引导类文件的位置
[javac] -extdirs覆盖已安装扩展的位置
[javac] -d指定生成的类文件的放置位置
[javac] -encoding指定源文件使用的字符编码
[javac] -source提供与指定版本的源兼容性
[javac] -target为特定VM版本生成类文件
[javac] -help打印标准选项的概要
建立失败
答案 0 :(得分:2)
您是否尝试过为javac任务明确设置source
和target
属性?
<target name="compile">
<javac .....
source="1.6"
target="1.6" />
</target>
答案 1 :(得分:1)
也许您可以通过以下方式检查您的编译器的版本:
<echo>JVM version is ${ant.java.version}</echo>
<echo>Target compilation is ${ant.build.javac.target}</echo>
您可以添加<property name="ant.build.javac.target" value="1.5" />
以强制编译器使用Java 5合规性...
这个属性是ant 1.7的默认目标,对于ant 1.6我认为你必须将target="${ant.build.javac.target}"
添加到你的javac目标。
答案 2 :(得分:0)
您需要定义Map的类型,即:
Map<String, String> inputconfigmap = new LinkedHashMap<String, String>();
答案 3 :(得分:0)
尝试
Map<?, ?> inputconfigmap = new LinkedHashMap<?, ?>();
答案 4 :(得分:0)
您使用的是双尖括号(&lt;&lt;&gt;&gt;)?它们应该是单身的,如kgiannakakis所示:
Map<String, String> inputconfigmap = new LinkedHashMap<String, String>();