好像JDK 1.4在Solaris上有严重的字符集Bug!!!!欢迎大家讨论!!!
我最近在SUN Solaris 8的环境中安装一些应用(Tomcat 4.1.24),先是安装了JDK 1.4.2,然后安装Tomcat 4.1.24,启动的时候出现一堆错误,好像都是JVM底层的类库出现错误,没辙,我把JDK换成1.3就都正常了。
为了刨根追底,我仔细的分析运行错误的时候的Exception,发现在字符集转换方面出现的严重的问题,竟然JVM在调用内部类的时候出现NoSuchMethodError,为此我特地作了一个非常简单的程序b.java,通过两种case来验证是否是JDK 1.4的Bug。情况如下(特别提醒,这些程序在Windows环境和Linux环境的JDK 1.4.2都正常运行):
Case#1
1、设定Solaris的语言环境(csh)
setenv LANG zh
2、在Solaris 8环境中编译b.java程序
javac b.java (JDK 1.4.2 for Solaris)
变异的时候竟然出现一堆的错误,但这些错误都和我的程序无关!!!
错误信息如下:
Exception in thread "main" java.lang.NoSuchMethodError: sun.io.ByteToCharEUC_CN.
getIndex1()[S
at sun.nio.cs.ext.EUC_CN$Decoder.<init>(EUC_CN.java:50)
at sun.nio.cs.ext.EUC_CN.newDecoder(EUC_CN.java:38)
at java.lang.StringCoding$CharsetSD.<init>(StringCoding.java:166)
at java.lang.StringCoding$CharsetSD.<init>(StringCoding.java:157)
at java.lang.StringCoding.decode(StringCoding.java:213)
at java.lang.StringCoding.decode(StringCoding.java:230)
at java.lang.String.<init>(String.java:371)
at java.lang.String.<init>(String.java:390)
Case#2
同样的b.java程序如下情况下编译通过,但运行时报错,出现的错误竟然和编译的时候一样,过程如下:
1、设定Solaris的语言环境(csh)
setenv LANG C
2、在Solaris 8环境中编译b.java程序
javac b.java (JDK 1.4.2 for Solaris)
3、在Solaris 8环境中运行b.class
java b (JDK 1.4.2 for Solaris)
运行错误如下:
Exception in thread "main" java.lang.NoSuchMethodError: sun.io.CharToByteGBK.get
Index1()[S
at sun.nio.cs.ext.GBK$Encoder.<init>(GBK.java:58)
at sun.nio.cs.ext.GBK.newEncoder(GBK.java:37)
at java.lang.StringCoding$CharsetSE.<init>(StringCoding.java:317)
at java.lang.StringCoding$CharsetSE.<init>(StringCoding.java:308)
at java.lang.StringCoding.encode(StringCoding.java:365)
at java.lang.String.getBytes(String.java:573)
at b.main(b.java:6)
======== b.java =================================
import java.util.*;
public class b {
public static void main(String[] args) {
String aaa = "abc";
try {
byte[] buf = aaa.getBytes("GBK");
} catch (Exception e) {
System.out.println(e.toString());
e.printStackTrace();
}
}
}
=================================================
各位大虾,我的程序没有错误吧?????
我认为是SUN JDK 1.4有严重的Bug,同样的程序,同样的过程,在JDK 1.3 for Solaris上没有问题,在JDK 1.4 for Windows, Linux环境中也没有问题!!!
盼大家能给我一点建议!!!
问题点数:0、回复次数:4Top
1 楼xiaoguaiwei(巍)回复于 2003-11-03 15:49:05 得分 0
JDK还有很长的路要走呀Top
2 楼machozhao(Macho)回复于 2003-11-03 19:41:33 得分 0
哪位在Solaris上运行JDK 1.4 的环境呀,给点建议Top
3 楼caiyi0903(willpower)回复于 2003-11-03 21:10:19 得分 0
关注ingTop
4 楼machozhao(Macho)回复于 2003-11-07 13:11:39 得分 0
难道就没有同仁出现同样的问题?Top




