您的位置:首页 > 编程语言 > Java开发

开发环境jdk1.5,部署环境jdk1.4 BigDecimal出现问题

2006-07-05 11:32 519 查看
开发环境是jdk1.5,部署环境是jdk1.4,用ANT编译程序的时候已经指定了-source 1.4,以前都没问题,最近出问题了。GOOGLE了一下,发现是因为使用了BigDecimal,

 以下摘自:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6226858

As part of jsr 13, a new constructor, BigDecimal(int val), was added to BigDecimal in JDK 5.  Therefore, in 1.4 and earlier

new BigDecimal(1)

in the source resolves to BigDecimal(double) while in 1.5 it resolves to BigDecimal(int), which is not present in earlier JDKs.  The -source flag of javac only restricts the constructs in the source languge (e.g. assert, generics); it does *not* restrict or filter the contents of the libraries.  Therefore, in JDK5 if you compile with "javac -source 1.4" you will still be compiling against the 1.5 version of the libraries.  Therefore, in cases like the one in this bug, code compiled at a lower language level might not be able to be used with an ealier release supporting that language level.

To match both the language and libraries of an ealier jdk, use -source and the -bootclasspath flag to specify the earlier rt.jar as well.  Of course the ealier jdk could be used too.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐