2011-05-13 21 views
7

Tengo un problema al compilar un archivo fuente con un carácter especial en el nombre de la clase. El archivo de clase compila bien en el Eclipse IDE, pero no desde javac. Creo que necesito aprovechar la bandera -encoding, pero todavía no he alcanzado la configuración correcta. Le agradecería cualquier punteros:Error al compilar el archivo Java con caracteres especiales en el nombre de la clase

Nombre del archivo: DeptView 和 SDO.java

Java Fuente: Mensaje

public interface DeptView\u548cSDO { 

    public int getDeptno(); 

    public void setDeptno(int value); 

} 

error:

Correr javac *.java resultados en el mensaje de error siguiente:

javac: file not found: DeptView?SDO.java 

ACTUALIZACIÓN

  • Actualmente estoy tratando de la compilación en un equipo con Windows XP el intérprete de comandos
  • última instancia, esta compilación tendrá que ser parte de una acumulación de hormigas, una carrera en diferentes sistemas operativos
  • Trabajo en la herramienta que está produciendo este archivo fuente generado.
+0

Bleugh, ¿por qué hay caracteres especiales en el nombre de clase en primer lugar? Supongo que esto no es tuyo;) –

+1

¿No puedes simplemente cambiar el nombre de la clase y el archivo fuente? Me parece extraño usar caracteres que no sean ASCII en un nombre de clase. – Bernard

+0

Parece que está usando código fuente de otro equipo, o algo así. Por razones de compatibilidad, sería difícil cambiar el nombre. –

Respuesta

7

Una solución es hacer una lista el nombre de archivo de cada unidad de compilación en un archivo separado, por ejemplo files, y pasar @files como un argumento de línea de comandos para javac. De lo contrario, tendrá que establecer la configuración regional de su shell, para que esté utilizando la codificación de caracteres correcta.

+2

+1: sospecho que no es un problema con el programa 'javac' en sí, sino con el shell. – Raedwald

+4

+1 - En este momento, creo que el problema se debe a la codificación de caracteres de la ventana de comandos de Windows que estoy usando, ya que puedo compilar esto en Eclipse y con javac en Linux. –

0

¿Ha intentado utilizar -encoding UTF8 o -encoding UTF16LE (Little Endian) o -encoding UTF16BE (big endian)? (El uso de LE o BE depende del sistema que está utilizando - Windows es LE por lo que recuerdo).

+0

Gracias por la entrada. Acabo de probar esas codificaciones, pero sigo teniendo el mismo error. –

+1

es ese un personaje asiático? ¿Has probado shiftJis, etc.? – Liv

Cuestiones relacionadas