JDK-4051149 : javavm cannot run with multibytes class name
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: solaris_2.6
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris_9
  • CPU: sparc
  • Submitted: 1997-05-09
  • Updated: 2008-09-22
  • Resolved: 1997-06-24
Related Reports
Duplicate :  
Relates :  
Description
java vm cannot run class file which contain multibyte character
in class name which compiled by "javac".

to reproduce;
1. login as any of asian locales(ja, ko, zh, zh_TW)
2. write java code which contain multibyte chars in class name
3. comiple by javac
4. run java

-------------------------------------------
Supplementary information - 5/28/97

I also see this with multibyte in Interface name - get msg 
ava.lang.NoClassDefFoundError:   XXInterXX 
where XX is the multibyte characters

Comments
EVALUATION I cannot reproduce this bug under jvm111_18n. I have attached the files I used for testing, a modified HelloWorldApp and a shell script. Please check what version of java you are using with "java -fullversion" and then examine my test case and see if this is reasonable for your original bug. $ cat xH.java /** * The HelloWorldApp class implements an application that * simply displays "Hello World!" to the standard output. */ class H\u30d0lloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); //Display the string. } } $ javac xH.java $ yy=$(echo H*) $ echo $yy H����lloWorldApp.class $ java ${yy%%.*} Hello World! $ ###@###.###da 1997-05-14 The java vm version is like below; global% java -fullversion java full version "jvm111_16n:97.04.15" global% uname -a SunOS global 5.6 s297_32 sun4u sparc SUNW,Ultra-2 And this problems seems happen on any java file which has more than one class. Below files are the test files I used. global% more 2classes.java class Other_\ub2e4\ub978_Class { public void print() { System.out.println("I'm in other"); } } class My2Classes { public static void main (String args[]) { System.out.println("Hello World!"); Other_\ub2e4\ub978_Class my_other = new Other_\ub2e4\ub978_Class (); my_other.print(); } } global% javac 2classes.java global% ls 2classes.java My2Classes.class Other_��������_Class.class global% java My2Classes Hello World! java.lang.NoClassDefFoundError: Other_��������_Class at My2Classes.main(Compiled Code) global% changhoon.jung@Eng 1997-05-14 OK, thats a winner, 2 classes fail: $ cat 2classesx.java class Other_\u30d0_Class { public void print() { System.out.println("I'm in other"); } } class XX2Classes { public static void main (String args[]) { System.out.println("Hello World!"); Other_\u30d0_Class my_other = new Other_\u30d0_Class (); my_other.print(); } } $ cat 2clok.java class Other_X_Class { public void print() { System.out.println("I'm in other"); } } class OK2Classes { public static void main (String args[]) { System.out.println("Hello World!"); Other_X_Class my_other = new Other_X_Class (); my_other.print(); } } $ javac 2classesx.java $ java XX2Classes Hello World! java.lang.NoClassDefFoundError: Other_����_Class at XX2Classes.main(Compiled Code) $ javac 2clok.java $ ls 2classesx.java OK2Classes.class Other_����_Class.class 2clok.java Other_X_Class.class XX2Classes.class $ java OK2Classes Hello World! I'm in other $ diff 2classesx.java 2clok.java 1c1 < class Other_\u30d0_Class { --- > class Other_X_Class { 7c7 < class XX2Classes { --- > class OK2Classes { 10c10 < Other_\u30d0_Class my_other = new Other_\u30d0_Class --- > Other_X_Class my_other = new Other_X_Class $ I've added the tar file for the failing case. ###@###.###da 1997-05-15
15-05-1997