Je reçois 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’utilise 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?
Vous devez au moins ajouter l'extension .Java
au nom du fichier dans cette ligne:
javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices
De la FAQ officielle :
Les noms de classe, 'HelloWorldApp', ne sont acceptés que si le traitement des annotations est explicitement demandé
Si vous recevez cette erreur, vous avez oublié d'inclure le suffixe .Java lors de la compilation du programme. Rappelez-vous que la commande est javac HelloWorldApp.Java pas javac HelloWorldApp.
De plus, dans votre deuxième exemple javac (dans lequel vous avez réellement inclus .Java
), vous devez inclure les fichiers tous requis .jar. Nécessaires à la compilation.
Cela aussi m'a troublé parce que j'y ai inclus l'extension .Java ... puis j'ai remarqué le J majuscule.
Cela provoquera également l'erreur "Annotaion Processing":
javac myclass.Java
Au lieu de cela, il devrait être:
javac myclass.Java
En utilisant javac ClassName.Java pour compiler le programme, Utilisez ensuite Java ClassName pour exécuter le code compilé. Vous ne pouvez pas mélanger javac avec le ClassName uniquement (sans l'extension Java).
J'ai appris que vous pouvez également obtenir cette erreur en stockant le fichier source dans un dossier nommé Java.
je pense que c'est aussi à cause d'une compilation incorrecte ..
donc pour linux (Ubuntu) .....
javac fichier.Java
Fichier java
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 la nouvelle compilation, utilisez javac
pour exécuter un programme.
L'erreur "Les noms de classe ne sont acceptés que si le traitement des annotations est explicitement demandé" peut être provoquée par un ou plusieurs des problèmes suivants:
Ce n'est peut-être pas la liste complète des causes de cette erreur, mais ce sont les causes dont je suis au courant jusqu'à présent.
Comment reproduire cette erreur cryptique sur le terminal Ubuntu:
Mettez ceci 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 vous n'avez pas spécifié .Java
à la fin de Main
.
Faites-le comme ça, et ça marche:
user@defiant /home/user $ javac Main.Java
user@defiant /home/user $
Frappez votre front maintenant et murmurez que le message d'erreur est tellement cryptique.
premier téléchargement jdk à partir de https://www.Oracle.com/technetwork/Java/javase/downloads/index.html . Puis, dans la recherche, écrivez Modifier les variables d’environnement système Dans la fenêtre ouverte i Appuyez en bas sur les variables d’environnement, puis dans Variables système entrez la description d’image ici Appuyez en bas sur le nouveau champ dans la nouvelle variable écrivez "Path" Dans le champ nouvelle valeur, écrivez le répertoire dans le dossier dans jdk comme "C:\Program Files\Java\jdk1.8.0_191\bin" mais dans mon système d'exploitation ne fonctionne que "C:\Program Files\Java\jdk1.8.0_191\bin\javac.exe" enter image description ici appuyez sur ok 3 fois
Démarrer Cmd. I Push Windows bas + R. Ensuite, écrivez cmd. Dans cmd, écrivez "cd (votre répertoire avec le code)" ressemble à C:\Utilisateurs\utilisateur\IdeaProjects\app\src. Ensuite, écrivez "javac (nom de votre classe principale pour votre programme) .Java" qui ressemble à blabla.Java et javac créent un code octet comme (nom de votre classe principale) .class dans votre répertoire. Dernière écriture dans cmd "Java (nom de votre classe principale)" et mon programme démarre
Peut-être que vous êtes en train de compiler avec un nom de fichier au lieu d'un nom de méthode .... Vérifiez une fois que j'ai moi aussi fait la même erreur mais je l'ai corrigé rapidement ... # codage