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?
.class
doit être omis lors du lancement avecjava
).J'étais aussi perplexe parce que j'incluais l'extension .Java ... puis j'ai remarqué la majuscule J.
Cela provoquera également l'erreur de "traitement des annotations":
Au lieu de cela, il devrait être:
la source
Utilisez javac ClassName.java pour compiler le programme, puis utilisez java ClassName pour exécuter le code compilé. Vous ne pouvez pas mélanger javac avec le ClassName uniquement (sans l'extension java).
la source
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 éléments suivants:
Ce n'est peut-être pas la liste complète des causes de cette erreur, mais ce sont les causes dont je suis conscient jusqu'à présent.
la source
Donc, si vous par erreur après la compilation, utilisez à nouveau
javac
pour exécuter un programme.la source
J'ai appris que vous pouvez également obtenir cette erreur en stockant le fichier source dans un dossier nommé Java
la source
je pense que c'est aussi à cause d'une compilation incorrecte.
donc pour linux (ubuntu) .....
javac fichier.java
fichier java
la source
Comment vous pouvez reproduire cette erreur cryptique sur le terminal Ubuntu:
Mettez ceci dans un fichier appelé Main.java:
Puis compilez-le comme ceci:
C'est parce que vous n'avez pas spécifié
.java
à la fin deMain
.Faites-le comme ça, et ça marche:
Frappez votre front maintenant et grommelez-vous que le message d'erreur est si cryptique.
la source
Peut-être que vous compilez avec le nom du fichier au lieu du nom de la méthode .... Vérifiez une fois que j'ai aussi fait la même erreur mais je l'ai corrigée rapidement ..... # happy Coding
la source
télécharger d'abord jdk depuis https://www.oracle.com/technetwork/java/javase/downloads/index.html . Ensuite , à la recherche d' écriture Modifier les variables d'environnement système dans la fenêtre ouverte i pousser des variables appelées environnement bas , puis dans les variables système entrez la description d'image ici Poussez bas nouveau Dans le champ de nouvelles variables écrire « Path » Dans le champ nouveau répertoire Valeur Write dans le bac de 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 " entrez la description de l'image ici appuyez sur ok 3 fois
Démarrez Cmd. Je pousse les fenêtres du bas + R. Ensuite, écris cmd. Dans cmd, écrivez "cd (votre répertoire avec code)" ressemble à C: \ Users \ user \ IdeaProjects \ app \ src. Ensuite, écrivez "javac (nom de votre classe principale pour votre programme) .java" ressemble à blabla.java et javac crée un code d'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 le travail
la source
Pour éviter cette erreur, vous devez utiliser la commande javac avec l'extension .java.
Javac DescendingOrder.java <- cela fonctionne parfaitement.
la source
Si vous compilez plusieurs fichiers sur la même ligne, assurez-vous de n'utiliser javac qu'une seule fois et non pour chaque fichier de classe.
Incorrect:
Correct:
la source