Recebo este erro ao compilar meu programa java:
error: Class names, 'EnumDevices', are only accepted if annotation
processing is explicitly requested
1 error
Aqui está o código java (estou executando isso no 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);
}
}
}
Aqui está o comando javac:
javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices
Como faço para compilar este programa?
.class
deve ser omitido ao iniciar comjava
).Fiquei perplexo com isso também porque estava incluindo a extensão .Java ... então notei a capital J.
Isso também causará o erro de "processamento de anotação":
Em vez disso, deveria ser:
fonte
Usando javac ClassName.java para compilar o programa, então use java ClassName para executar o código compilado. Você não pode misturar javac apenas com o ClassName (sem a extensão java).
fonte
O erro "Nomes de classes são aceitos apenas se o processamento de anotação for explicitamente solicitado" pode ser causado por um ou mais dos seguintes itens:
Esta pode não ser a lista completa das causas desse erro, mas são as causas das quais estou ciente até agora.
fonte
Portanto, se você por engano, após compilar novamente, use
javac
para executar um programa.fonte
Aprendi que você também pode obter esse erro armazenando o arquivo de origem em uma pasta chamada Java
fonte
Acho que isso também se deve à compilação incorreta.
então para Linux (ubuntu) .....
arquivo javac.java
arquivo java
fonte
Como você pode reproduzir esse erro críptico no terminal do Ubuntu:
Coloque isso em um arquivo chamado Main.java:
Em seguida, compile-o assim:
É porque você não especificou
.java
no final deMain
.Faça assim e funcionará:
Dê um tapa na testa agora e resmungue que a mensagem de erro é tão enigmática.
fonte
Talvez você esteja compilando com o nome do arquivo em vez do nome do método ... Verifique uma vez que eu também cometi o mesmo erro, mas corrigi-lo rapidamente ... # happy Coding
fonte
primeiro baixe o jdk em https://www.oracle.com/technetwork/java/javase/downloads/index.html . Em seguida, na pesquisa, escreva Editar as variáveis de ambiente do sistema. Na janela aberta, empurro a parte inferior chamada Variáveis de ambiente. Em seguida, em Variáveis do sistema, insira a descrição da imagem aqui. Pressione a parte inferior new No campo novas variáveis escreva "Caminho" No campo novo valor Escreva o diretório na pasta bin em jdk como " C: \ Arquivos de programas \ Java \ jdk1.8.0_191 \ bin "mas no meu sistema operacional só trabalho" C: \ Arquivos de programas \ Java \ jdk1.8.0_191 \ bin \ javac.exe " insira a descrição da imagem aqui pressione ok 3 vezes
Inicie o Cmd. Empurro as janelas inferiores + R. Em seguida, escrevo cmd. Em cmd escreva "cd (seu diretório com código)" é semelhante a C: \ Users \ user \ IdeaProjects \ app \ src. Em seguida, escreva "javac (nome de sua classe principal para seu programa) .java" semelhante a blabla.java e javac crie código de bytes como (nome de sua classe principal) .class em seu diretório. última escrita em cmd "java (nome da sua classe principal)" e meu programa começa a funcionar
fonte
Para evitar esse erro, você deve usar o comando javac com extensão .java.
Javac DescendingOrder.java <- funciona perfeitamente.
fonte
Se você compilar vários arquivos na mesma linha, certifique-se de usar javac apenas uma vez e não para cada arquivo de classe.
Incorreta:
Corrigir:
fonte