javac d'erreur: Classe de noms ne sont acceptés que si l'annotation de traitement est explicitement demandé
J'obtiens cette erreur quand 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 suis en cours d'exécution ce 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 puis-je compiler ce programme?
Vous devez vous connecter pour publier un commentaire.
Vous faut au moins ajouter le
.java
extension du nom de fichier dans cette ligne:De la officiel faq:
Aussi, dans votre deuxième javac-exemple, (qui vous fait inclus
.java
), vous devez inclure les tous nécessaire .jar-les fichiers nécessaires à la compilation..class
doit être omis lors du lancement avecjava
).J'ai été déconcerté par cette trop parce que j'ai été dont le .Extension Java ... puis j'ai remarqué que le capital J.
Ce sera également la cause de la "annotaion traitement" erreur:
Au lieu de cela, il devrait être:
À l'aide de javac ClassName.java pour compiler le programme,
ensuite, utilisez java ClassName pour exécuter le code compilé. Vous ne pouvez pas mélanger javac avec celui de la Classe seulement (sans l'extension java).
J'ai appris que vous aussi vous pouvez obtenir cette erreur en stockant le fichier source dans un dossier nommé Java
Donc, si vous avez par erreur lors de la compilation de nouveau utiliser
javac
pour l'exécution d'un programme.Le message d'erreur "les noms de Classe sont acceptés uniquement si annotation processing est explicitement demandé" peut être provoquée par l'une ou plusieurs des opérations suivantes:
Cela peut ne pas être la liste complète des causes de cette erreur, mais ce sont les causes que je suis conscient de la mesure.
Comment vous pouvez reproduire cette erreur cryptique sur le terminal Ubuntu:
Mettre ça 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
.Faire comme cela, et ça fonctionne:
Gifler votre front maintenant et se plaindre que le message d'erreur est tellement alambiquées.
Peut-être vous pouvez compiler avec un nom de fichier au lieu de la méthode nom de....Vérifiez une fois que j'ai trop fait la même erreur mais j'ai corrigé rapidement .....#heureux de Codage
d'abord télécharger jdk de https://www.oracle.com/technetwork/java/javase/downloads/index.html.
Alors à la recherche d'écrire Modifier les variables d'environnement Système
Dans la fenêtre ouverte, je la pousser en bas appelées Variables d'Environnement
Puis dans les variables Système entrez la description de l'image ici
Appuyez sur la partie inférieure de nouvelles
Dans le domaine des nouvelles variables écrire "Chemin d'accès"
Dans le champ nouvelle valeur Écrire le répertoire dans le dossier bin du jdk comme
"C:\Program Files\Java\jdk1.8.0_191\bin"
mais dans mon OS de travail seulement ce "C:\Program Files\Java\jdk1.8.0_191\bin\javac.exe"
entrez la description de l'image ici
appuyez sur ok 3 fois
Start Cmd.
I appuyez sur la partie inférieure de windows + R.
Ensuite, écrivez cmd.
Dans cmd écrire "cd (votre répertoire avec code )" comme dirait C:\Users\user\IdeaProjects\app\src.
Puis écrire "javac (nom de votre classe principale de votre programme).java" comme dirait blabla.java
et javac créer de byte code comme (nom de votre classe principale).classe dans votre répertoire.
la dernière écriture dans cmd "java (nom de votre classe principale)" et mon programme de démarrage des travaux
Pour éviter cette erreur, vous devez utiliser la commande javac avec .extension java.
Javac DescendingOrder.java <- ce travail parfaitement.
Si ur fichier est enregistré à titre d'exemple: hello.java et
Exemple de classe.Cela cmd
javac hello.java
Exemple java
Qui fonctionne.
vous voie de l'examen javac.exe et java.exe
D:\Test>"C:\jdk1.7.0_80\bin\javac.exe" TestMain.java
D:\Test>"C:\jdk1.7.0_80\bin\java.exe" TestMain.java