Я получаю эту ошибку при компиляции своей Java-программы:
error: Class names, 'EnumDevices', are only accepted if annotation
processing is explicitly requested
1 error
Вот код Java (я запускаю его в 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);
}
}
}
Вот команда javac:
javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices
Как мне скомпилировать эту программу?
.class
при запуске с помощьюjava
).Меня это тоже озадачило, потому что я включил расширение .Java ... потом я заметил заглавную букву J.
Это также вызовет ошибку "обработки аннотации":
Вместо этого должно быть:
источник
Используя javac ClassName.java для компиляции программы, затем используйте java ClassName для выполнения скомпилированного кода. Вы не можете смешивать javac только с ClassName (без расширения java).
источник
Ошибка «Имена классов принимаются, только если явно запрашивается обработка аннотации» может быть вызвана одной или несколькими из следующих причин:
Возможно, это не полный список причин этой ошибки, но это причины, о которых я знаю до сих пор.
источник
Так что если вы по ошибке после компиляции снова воспользуетесь
javac
для запуска программы.источник
Я узнал, что вы также можете получить эту ошибку, сохранив исходный файл в папке с именем Java.
источник
я думаю, это тоже из-за неправильной компиляции ..
так что для linux (ubuntu) .....
javac file.java
файл java
источник
Как можно воспроизвести эту загадочную ошибку на терминале Ubuntu:
Поместите это в файл с именем Main.java:
Затем скомпилируйте это так:
Это потому, что вы не указали
.java
в концеMain
.Сделайте это так, и он работает:
Теперь хлопните себя по лбу и ворчите, что сообщение об ошибке такое загадочное.
источник
Возможно, вы компилируете с именем файла, а не с именем метода .... Проверьте, я тоже сделал ту же ошибку, но исправил ее быстро ..... # happy Coding
источник
сначала загрузите jdk с https://www.oracle.com/technetwork/java/javase/downloads/index.html . Затем в поиске напишите «Редактировать системные переменные среды». В открытом окне я нажимаю нижнюю часть «Переменные среды». Затем в «Системные переменные» введите описание изображения здесь. Нажимайте внизу новое В поле новые переменные пишите «Путь». C: \ Program Files \ Java \ jdk1.8.0_191 \ bin ", но в моей ОС работает только этот" C: \ Program Files \ Java \ jdk1.8.0_191 \ bin \ javac.exe " введите описание изображения здесь нажмите ОК 3 раза
Запустить Cmd. Нажимаю нижнее окошко + R. Потом пишу cmd. В cmd напишите «cd (ваш каталог с кодом)» выглядит как C: \ Users \ user \ IdeaProjects \ app \ src. Затем напишите «javac (имя вашего основного класса для вашей программы) .java» выглядит как blabla.java, а javac создает байтовый код, например (имя вашего основного класса) .class в вашем каталоге. последняя запись в cmd "java (имя вашего основного класса)" и моя программа начинает работать
источник
Чтобы избежать этой ошибки, вы должны использовать команду javac с расширением .java.
Javac DescendingOrder.java <- это отлично работает.
источник
Если вы компилируете несколько файлов в одной строке, убедитесь, что вы используете javac только один раз, а не для каждого файла класса.
Неправильно:
Верный:
источник