140 votes

erreur javac : Les noms de classe ne sont acceptés que si le traitement des annotations est explicitement demandé

J'obtiens cette erreur lorsque je compile mon programme java :

error: Class names, 'EnumDevices', are only accepted if annotation 
processing is explicitly requested
1 error

Voici le code java (je l'exécute sur 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);
        }
    }
}

Voici la commande javac :

javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices

Comment compiler ce programme ?

5voto

c_bfx Points 77
chandan@cmaster:~/More$ javac New.java
chandan@cmaster:~/More$ javac New
error: Class names, 'New', are only accepted if annotation processing is explicitly requested
1 error

Donc si par erreur, après avoir compilé à nouveau, vous utilisez javac pour l'exécution d'un programme.

1voto

Eric Leschinski Points 14289

Comment reproduire cette erreur cryptique sur le terminal Ubuntu :

Mettez ça dans un fichier appelé Main.java :

public Main{
    public static void main(String[] args){
        System.out.println("ok");
    }
}

Puis compilez-le comme ceci :

user@defiant /home/user $ javac Main
error: Class names, 'Main', are only accepted if 
annotation processing is explicitly requested
1 error

C'est parce que tu n'as pas précisé .java à la fin de Main .

Fais-le comme ça, et ça marche :

user@defiant /home/user $ javac Main.java
user@defiant /home/user $

Frappez-vous le front maintenant et râlez que le message d'erreur soit si énigmatique.

1voto

Sai Saran Points 92

Peut-être que vous compilez avec le nom du fichier au lieu du nom de la méthode....Check once j'ai aussi fait la même erreur mais je l'ai corrigée rapidement .....#happy Coding

1voto

Avnish Points 26

Error : class name only accepted if annotation processing is explicitly request

Pour éviter cette erreur, vous devez utiliser la commande javac avec l'extension .java.

Javac DescendingOrder.java <- cela fonctionne parfaitement.

0voto

Mr tintin Points 1

Téléchargez d'abord le jdk depuis https://www.oracle.com/technetwork/java/javase/downloads/index.html . Ensuite, dans la recherche, écrivez Editer les variables d'environnement du système. Dans la fenêtre ouverte, je pousse le bas appelé Variables d'environnement. Puis dans Variables système Entrez la description de l'image ici Fond poussé neuf Dans le champ nouvelles variables, écrire "Path". Dans le champ nouvelle valeur, écrivez le répertoire du dossier bin dans le jdk comme suit " C:\Program Fichiers \Java\jdk1.8.0_191\bin " mais dans mon système d'exploitation, seul ce " C:\Program Fichiers \Java\jdk1.8.0_191\bin\javac.exe " Entrez la description de l'image ici appuyez sur ok 3 fois

Démarrer Cmd. J'appuie sur Windows + R. Puis écrivez cmd. Dans cmd écrivez "cd (votre répertoire avec le code )" comme suit C:\Users\user\IdeaProjects\app\src. Puis écrivez "javac (nom de votre classe principale pour votre programme).java" ressemble à blabla.java et javac crée un byte code comme (nom de votre classe principale).class dans votre répertoire. Enfin, écrivez dans cmd "java (nom de votre classe principale)" et mon programme commence à fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X