Recibo este error cuando compilo mi programa java:
error: Class names, 'EnumDevices', are only accepted if annotation
processing is explicitly requested
1 error
Aquí está el código java (lo estoy ejecutando en Ubuntu).
import jcuda.CUDA;
import jcuda.driver.CUdevprop;
import jcuda.driver.types.CUdevice;
public class EnumDevices {
public static void main(String args[]) {
CUDA cuda = new CUDA(true);
int count = cuda.getDeviceCount();
System.out.println("Total number of devices: " + count);
for (int i = 0; i < count; i++) {
CUdevice dev = cuda.getDevice(i);
String name = cuda.getDeviceName(dev);
System.out.println("Name: " + name);
int version[] = cuda.getDeviceComputeCapability(dev);
System.out.println("Version: " +
String.format("%d.%d", version[0], version[1]));
CUdevprop prop = cuda.getDeviceProperties(dev);
System.out.println("Clock rate: " + prop.clockRate + " MHz");
System.out.println("Threads per block: " + prop.maxThreadsPerBlock);
}
}
}
Aquí está el comando javac:
javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices
¿Cómo compilo este programa?
.class
debe omitirse al iniciar conjava
).Esto también me dejó perplejo porque estaba incluyendo la extensión .Java ... luego noté la J mayúscula.
Esto también provocará el error "procesamiento de anotaciones":
En cambio, debería ser:
fuente
Usando javac ClassName.java para compilar el programa, luego use java ClassName para ejecutar el código compilado. No puede mezclar javac solo con ClassName (sin la extensión java).
fuente
El error "Los nombres de clase solo se aceptan si se solicita explícitamente el procesamiento de anotaciones" puede deberse a uno o más de los siguientes:
Es posible que esta no sea la lista completa de causas de este error, pero estas son las causas que conozco hasta ahora.
fuente
Entonces, si por error después de compilar nuevamente, use
javac
para ejecutar un programa.fuente
Aprendí que también puede obtener este error almacenando el archivo fuente en una carpeta llamada Java
fuente
Creo que esto también se debe a una compilación incorrecta.
entonces para linux (ubuntu) .....
archivo javac.java
archivo java
fuente
Cómo puedes reproducir este error críptico en la terminal de Ubuntu:
Pon esto en un archivo llamado Main.java:
Luego compílelo así:
Es porque no especificaste
.java
al final deMain
.Hágalo así, y funciona:
Date una palmada en la frente ahora y quéjate de que el mensaje de error es tan críptico.
fuente
Quizás esté compilando con el nombre del archivo en lugar del nombre del método ... Verifique una vez que yo también cometí el mismo error pero lo corrigí rápidamente ..... # happy Coding
fuente
Primero descargue jdk de https://www.oracle.com/technetwork/java/javase/downloads/index.html . Luego, en la búsqueda, escriba Editar las variables de entorno del sistema. En la ventana abierta, presiono la parte inferior llamada Variables de entorno. Luego, en las variables del sistema, ingrese la descripción de la imagen aquí. Presione la parte inferior nueva. En el campo, las nuevas variables, escriba "Ruta". C: \ Archivos de programa \ Java \ jdk1.8.0_191 \ bin "pero en mi sistema operativo solo funciona este" C: \ Archivos de programa \ Java \ jdk1.8.0_191 \ bin \ javac.exe " ingrese la descripción de la imagen aquí presione ok 3 veces
Inicie Cmd. Presiono ventanas inferiores + R. Luego escribo cmd. En cmd escriba "cd (su directorio con código)" se parece a C: \ Users \ user \ IdeaProjects \ app \ src. Luego escriba "javac (nombre de su clase principal para su programa) .java" se parece a blabla.java y javac crea un código de bytes como (nombre de su clase principal) .class en su directorio. última escritura en cmd "java (nombre de su clase principal)" y mi programa comienza a funcionar
fuente
Para evitar este error, debe usar el comando javac con la extensión .java.
Javac DescendingOrder.java <- esto funciona perfectamente.
fuente
Si compila varios archivos en la misma línea, asegúrese de usar javac solo una vez y no para cada archivo de clase.
Incorrecto:
Correcto:
fuente