本文引自:http://www.iteye.com/topic/49542
一、遇到问题:
用ant
执行jasperreport的samples\charts示例的build.xml时,无法编译,提示错误如下:
javac
:
[javac
] Compiling 2 source files to E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts
[javac
] 注意: E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts\ChartsApp.java 使用了未经检查或不安全的操作。
[javac
] 注意: 要了解详细信息,请使用 -Xlint
:unchecked
重新编译。
二、查了一下资料,知道是泛型的原因,网上查到的解决方案主要有以下几种:
1.编译时带上参数-source 1.4
2.使用@SupressWarnings("unchecked
")注释
3.更新你的代码,使用List<Object>. List<Object>的实例能接受任何类型的对象,就像是一个原型List。然而,编译器不会报错。
(以上三种方法来源:http://www.matrix.org.cn/resource/article/43/43634_java_generics.html
)
4.如果你用的Ant
,使用build.xml编译的话,可以右击build.xml文件,
--> 执行 --> 构成和执行,选择 参数,在《程序参数》里面输入-xlint
:unchecked
即可;
5.找到build.xml里面类似的语句,加上一句话:
<!-- Java Compile -->
<target name="compile" depends="init">
<javac
srcdir="src" destdir="${classdir}"
deprecation="on" encoding="Windows-31J" debug="on" includes="**/jp/**">
<compilerarg value="-Xlint
:unchecked
"/> `<!-- 就是这句话!! -->
<classpath refid="project.class.path" />
</javac
>
</target>
(以上两种方法来源:http://www.itwenku.com/java/12/47796.htm
)
三、自己的试验与结论
第一种:
“编译时带上参数-source 1.4”使用方法:
找到build.xml里面类似的语句,加上一句话:
<javac
srcdir="${src.dir}" destdir="${classes.dir}" >
<classpath refid="classpath"/>
<compilerarg line="-source 1.5"/> `<!-- 就是这句话!注意与第五种方式不同的是line标签而不是value! -->
</javac
>
编译通过,charts下的报表出现了!
第二种:
“使用@SupressWarnings("unchecked
")注释”:
在ChartsApp.java的main函数前加上了这个注释,但是没有起作用,提示错误依然是“[javac
] 注意: 要了解详细信息,请使用 -Xlint
:unchecked
重新编译。”,怎么回事呢?
在一篇文章中找到了答案:
http://www.matrix.org.cn/resource/article/43/43864_Generic_Types.html
在撰写本文时候,javac
并不支持@SuppressWarnings 的注解。期望在Java 5.1中得到支持。
第三种:
更改代码为泛型使用方式:
原来的代码:
Map parameters = new HashMap();
parameters.put("MaxOrderID", new Integer(12500));
更改后的代码:
Map<String,Integer> parameters = new HashMap<String,Integer> ();
parameters.put("MaxOrderID", new Integer(12500));
或者:
Map<Object,Object> parameters = new HashMap<Object,Object> ();
parameters.put("MaxOrderID", new Integer(12500));
更改后,顺利通过编译,也能看到报表了!!
第四种:
经验证无效;
第五种:
<javac
srcdir="src" destdir="${classdir}"
deprecation="on" encoding="Windows-31J" debug="on" includes="**/jp/**">
<compilerarg value="-Xlint
:unchecked
"/> `<!-- 就是这句话!! -->
<classpath refid="project.class.path" />
</javac
>
加上"<compilerarg value="-Xlint
:unchecked
"/>" 后,出现"警告",不过编译顺利通过,也能看到报表了!
编译提示如下:
[javac
] Compiling 2 source files to E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts
[javac
] E:\jiangcm\workspace-forict-myeclipse\jasperreports\demo\samples\charts\ChartsApp.java:115: 警告: [unchecked
] 对作为普通类型 java.util.Map 的成员的 put(K,V) 的调用未经检查
[javac
] parameters.put("MaxOrderID", new Integer(12500));
[javac
] ^
[javac
] 1 警告
呵呵,答案是丰富多彩的,条条大道通罗马,这次不仅解决了问题,还找到了四种解决问题的方法。
参考资料:
1.J2SE 5.0中的泛型
作者:Budi Kurniawan
http://www.matrix.org.cn/resource/article/43/43634_java_generics.html
http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf
2.Eclipse中报jsp中有错误“要了解详细信息,请使用-xlint
:unchecked
重新编译”,具体在菜单上怎么操作?
http://www.itwenku.com/java/12/47796.htm
3.泛型类型,第一部分
作者: David Flanagan
http://www.matrix.org.cn/resource/article/43/43864_Generic_Types.html
4.有关ant
的faq
http://www.blogjava.net/luckyrobbie/articles/24117.html
Q. How to pass -Xlint
or -Xlint
:unchecked
to 1.5 javac
task?
A: pass it as compilerarg nested <compilerarg> to specify.
<compilerarg value="-Xlint
"/>
<!-- or -->
<compilerarg value="-Xlint
:unchecked
"/>
分享到:
相关推荐
java除去类里面的黄色警告
为了解决spring整合cxf,xfire遇到的jar包冲突问题,将XmlSchema.1.1.1.jar和xfire-all1.2.6.jar修改后进行了重新编译打包
SQL SERVER安装配置管理及常见问题SQL SERVER安装配置管理及常见问题
DXperience 8.3.2 重新编译版,最新版本,经测试,无任何问题。
您可以在上下载编译的二进制文件。当前,构建是手动完成的,并不是每个发行版都可以使用每个平台(例如Windows / Mac / Linux)。 另一种选择是使用pub global activate blake 。 用法 使用blake init在当前目录中...
使用ant编译打包应用程序,比较简单,适合初学者。
现代化Maven插件 Modernizer Maven插件可以检测对旧版API的使用,这些旧版API...要运行Modernizer,请将以下内容添加到pom.xml中的节中,然后调用mvn modernizer:modernizer : < groupId>org.gaul < artifactId>
java泛型源码泛型JavaAssignment03 我的Java中级编程类的第三次...注意:使用-Xlint:unchecked重新编译以获取详细信息。 您可以根据需要定义新的类,以使您的程序按要求运行,但是您不能修改名为Proj03的类的类定义。
java泛型源码泛型JavaAssignment02 我的Java中级编程类的第二个任务。...注意:使用-Xlint:unchecked重新编译以获取详细信息。 您可以根据需要定义新的类,以使程序按要求运行,但不能修改名为Proj02的类的类定义。
使用DOS命令进入InstallCert.java 存放目录 运行 javac InstallCert.java 将InstallCert.java 编译成 .class文件 在运行 java InstallCert smtp.xyz.com:465【其中xyz是要使用的mail,例如:smtp.126.com】【465是...
unity2019、unity2020、unity2021打包安卓需要NDKr19.0.93,而官方已经不提供NDKr19.0.53下载,只有无法支持Unity的NDKr19.2.5b,因此我这个是绝对、完全、完美支持Unity的
JAVA使用或覆盖了已过时的API对照表.pdf
如果初始执行失败,请尝试-Xlint:unchecked在编译选项中。游戏规则刺客的游戏方式如下。 玩家从一群想玩游戏的人开始。 例如,假设我们有五个人在玩,他们的名字分别是Joe,Sally,Jim,Carol和Chris。 建立了一个...
<br>一、用ant编译源码(所有源文件及目录结构请下载) <br>C:\cs>ant compile Buildfile: build.xml <br>compile: [mkdir] Created dir: C:\cs\build [javac] Compiling 60 source files to C:\cs...
记事本 java源码 、记事本 java源码 记事本 java源码 记事本 java源码 记事本 java源码 记事本 java源码 能用的哦
xlint-崇高 Sublime Text2 的构建系统 它是的修改版本 先决条件 NodeJS 必须安装在您的系统上,并且您必须能够从命令行运行“node”。 安装 在您的控制台中,转到 Sublime Text 的 Packages 文件夹: Linux: ~/....
皮林Scala克 使用scalac的Lint Scala。安装$ apm install linter-scalac组态通过config.json : ' linter-scalac ' : # Execute `which scala` to determine your own path. # By default the scalac binary is ...
用JAVA写的音乐时钟万年历,没有错误。使用javac -Xlint:deprecation AlarmClock.java进行编译。
)下面是一个清单: 关键字 用途 deprecation 使用了不赞成使用的类或方法时的警告 unchecked 执行了未检查的转换时的警告,例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型。 fallthrough 当 Switch ...
xlint-csslint XLint 的 CSSLint 处理程序 使用该模块提供验证,以 安装 $ npm install xlint-csslint 测试 $ npm test