Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4077321

Accents not supported in inner classes

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P4 P4
    • None
    • 1.1.3
    • tools
    • x86
    • windows_95



      Name: rlT66838 Date: 09/08/97


      I've defined a class with an accent in its name.
      It compiles well, and creates the .class file
      with the correct name, but when I try to use it
      from another class, an error is thrown at runtime:

      java.lang.NoClassDefFoundError: DocTextoEditar$LÝnAImprimir
              at DocTextoEditar$Dibujante.run(DocTextoEditar.java:230)

      If I change the name to the class, all goes well.

      I wasn't using any particular local, so I think it should be the en_US.
      My keyboard is a standard Spanish Windows 95 keyboard. Accents and 'ñ'
      work well with all programs, even with java programs. The problem was:
          - I wrote a program, some of the identifiers (class names, method
      names, fields...) were in Spanish.
          - Everything worked well, until I created a new (inner) class that
      had a 'í' (i acute) in its name. It was the first class with an accent
      in its name (but not the firs identifier, I've created a lot of fields
      and methods with accents). The file compiled without any error, but when
      I tried to use the class (in another file), the java runtime told me
      that there wasn't such a class.

          I send you a piece of code (and the .class files generated with
      javac) that produces the following error:
      -----
      D:\Datos\Ricardo\temp>java Ií
      873644852710
      java.lang.NoClassDefFoundError: IÝ$EÝ
              at I+¡.<init>(I+¡.java:7)
              at I+¡.main(I+¡.java:5)

      D:\Datos\Ricardo\temp>java -version
      java version "1.1.3"

      D:\Datos\Ricardo\ms>chcp
      Tabla de códigos activa: 850
      -----
      I'm using the JDK 1.1.3 on a Windows 95 machine.

      Hope this helps.

      class Ií {
          Eí eí = new Eí();
          public static void main(String[] args) {
              System.out.println(System.currentTimeMillis());
              Eí eeí= new Ií().eí;
          };
          Ií(){System.out.println(""+System.currentTimeMillis()+eí);}
          class Eí {
              Eí () { System.out.println(System.currentTimeMillis()); }
          };
      };


      ======================================================================

            wmaddoxsunw William Maddox (Inactive)
            rlewis Roger Lewis (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: