CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

好像JDK 1.4在Solaris上有严重的字符集Bug!!!!欢迎大家讨论!!!

楼主machozhao(Macho)2003-11-03 14:40:12 在 Java / J2SE / 基础类 提问

我最近在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

相关问题

  • solaris下EBCDIK和SJIS字符集怎末转化??急。
  • Oracle的字符集
  • 字符集转换
  • 字符集问题
  • jbuilder2005的字符集?
  • 字符集,不懂
  • 字符集问题!!!
  • 关于字符集
  • ORACLE字符集的修改
  • oracle/oracle7.3的字符集问题。。。

关键词

  • solaris
  • jdk
  • 编译
  • sun
  • 安装
  • stringcoding
  • jdk1.4
  • lang
  • 错误
  • 程序

得分解答快速导航

  • 帖主:machozhao

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo