Eclipse 运行JAVA程序报错

Eclipse 运行JAVA程序报错,第1张

在项目的亩袭属性里设置jdk版本,型耐洞方法是卜枯右击项目-->properties-->java compiler -->Enable project specific settings -->将compiler compliance level设置为1.8,也就是与jvm一致的版本

免费看《Windows CE 嵌入式系统开发 从基础到实践》 Eclipse中报错 要了解详细信息 请使用 xlint:unchecked重新编译 的解决方案

一 遇到问题

用ant执行jasperreport的samples\charts示例的build xml时 无法编译 提示错误如下

javac:[javac] Compiling 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 重新编译

二 查了一下资料 知道是泛型的原因 网上查到的解决方案主要有以下几种

编译时带上参数 source

使用@SupressWarnings( unchecked )注释

更新你的代码 使用List<Object>List<Object>的实例能接受任何类型的对象 就像是一个原型List 然而 编译器不会报错

(以上三种方法来源 // matrix cn/resource/article/ / _java_generics )

如果你用的Ant 使用build xml编译的话 可以右击build xml文件

>执行 >构成和执行 选择 参数 在《程序参数》里面输入 xlint:unchecked即可

找到build xml里面类似的语句 加上一句话

<! Java Compile ><target name= pile depends= init ><javac srcdir= src destdir= ${classdir} deprecation= on encoding= Windows J debug= on includes= **/jp/** ><pilerarg value= Xlint:unchecked />`<! 就是这改碧句话!! ><classpath refid= project class path /></javac></target>

(以上两种方法来源 // ienku /java/ / )

三 自己的试验与结论

第一种

编译时带上参数 source 使用方法

找到build xml里面类似的语句 加上一句话

 核搏举 <javac srcdir= ${src dir} destdir= ${classes dir} ><classpath refid= classpath /><pilerarg line= source />`<! 就是这句话!注意与第五种方式不同的是line标签而不是value! ></javac>

编译通过 charts下的报表银闹出现了!

第二种

使用@SupressWarnings( unchecked )注释

在ChartsApp java的main函数前加上了这个注释 但是没有起作用 提示错误依然是 [javac] 注意 要了解详细信息 请使用 Xlint:unchecked 重新编译 怎么回事呢?

在一篇文章中找到了答案

// matrix cn/resource/article/ / _Generic_Types

在撰写本文时候 javac并不支持@SuppressWarnings 的注解 期望在Java 中得到支持

第三种

更改代码为泛型使用方式

原来的代码

Map parameters = new HashMap()parameters put( MaxOrderID new Integer( ))

更改后的代码

Map<String Integer>parameters = new HashMap<String Integer>()parameters put( MaxOrderID new Integer( ))

或者

Map<Object Object>parameters = new HashMap<Object Object>()parameters put( MaxOrderID new Integer( ))

更改后 顺利通过编译 也能看到报表了!!

第四种

经验证无效

第五种

<javac srcdir= src destdir= ${classdir} deprecation= on encoding= Windows J debug= on includes= **/jp/** ><pilerarg value= Xlint:unchecked />`<! 就是这句话!! ><classpath refid= project class path /></javac>

加上 <pilerarg value= Xlint:unchecked />后 出现 警告 不过编译顺利通过 也能看到报表了!

编译提示如下

[javac] Compiling source files to E:\jiangcm\workspace forict myeclipse\jasperreports\demo\samples\charts[javac] E:\jiangcm\workspace forict myeclipse\jasperreports\demo\samples\charts\ChartsApp java: : 警告 [unchecked] 对作为普通类型 java util Map 的成员的 put(K V) 的调用未经检查[javac] parameters put( MaxOrderID new Integer( ))[javac] ^[javac] 警告

呵呵 答案是丰富多彩的 条条大道通罗马 这次不仅解决了问题 还找到了四种解决问题的方法


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12474360.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存