Otrzymuję ten błąd, kiedy kompiluję mój program Java:
error: Class names, 'EnumDevices', are only accepted if annotation
processing is explicitly requested
1 error
Oto kod java (uruchamiam go na 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);
}
}
}
Oto polecenie javac:
javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices
Jak skompilować ten program?
.class
należy go pominąć przy starcie zjava
).Zaskoczyło mnie to również, ponieważ uwzględniłem rozszerzenie .Java ... potem zauważyłem stolicę J.
Spowoduje to również błąd „przetwarzanie adnotacji”:
Zamiast tego powinno być:
źródło
Użyj javac ClassName.java do skompilowania programu, a następnie użyj java ClassName do wykonania skompilowanego kodu. Nie można mieszać języka javac tylko z nazwą ClassName (bez rozszerzenia java).
źródło
Błąd „Nazwy klas są akceptowane tylko wtedy, gdy wyraźnie zażądano przetwarzania adnotacji” może być spowodowany co najmniej jednym z następujących powodów:
Może to nie jest pełna lista przyczyn tego błędu, ale są to przyczyny, o których do tej pory jestem świadomy.
źródło
Więc jeśli przez pomyłkę po kompilacji ponownie użyj
javac
do uruchomienia programu.źródło
Dowiedziałem się, że ten błąd można również uzyskać, przechowując plik źródłowy w folderze o nazwie Java
źródło
Myślę, że jest to również spowodowane nieprawidłową kompilacją.
więc dla Linuksa (ubuntu) .....
javac file.java
plik java
źródło
Jak odtworzyć ten tajemniczy błąd na terminalu Ubuntu:
Umieść to w pliku o nazwie Main.java:
Następnie skompiluj to w ten sposób:
To dlatego, że nie określiłeś tego
.java
na końcuMain
.Zrób to w ten sposób i działa:
Uderz teraz w czoło i narzekaj, że komunikat o błędzie jest tak tajemniczy.
źródło
Być może kompilujesz z nazwą pliku zamiast nazwy metody .... Sprawdź raz i ja popełniłem ten sam błąd, ale szybko go poprawiłem ..... # happy Coding
źródło
najpierw pobierz jdk z https://www.oracle.com/technetwork/java/javase/downloads/index.html . Następnie w wyszukiwaniu napisz Edytuj zmienne środowiskowe systemu W otwartym oknie wciskam dół o nazwie Zmienne środowiskowe Następnie w Zmienne systemowe wpisz tutaj opis obrazka Wciśnij dół nowy W polu nowe zmienne wpisz "Ścieżka" W polu nowa wartość Zapisz katalog w folderze bin w jdk jak " C: \ Program Files \ Java \ jdk1.8.0_191 \ bin "ale w moim systemie operacyjnym działa tylko to" C: \ Program Files \ Java \ jdk1.8.0_191 \ bin \ javac.exe " wprowadź opis obrazu tutaj naciśnij ok 3 razy
Uruchom Cmd. Wciskam dolne okna + R. Następnie piszę cmd. W cmd napisz "cd (twój katalog z kodem)" wygląda jak C: \ Users \ user \ IdeaProjects \ app \ src. Następnie napisz "javac (nazwa twojej głównej klasy twojego programu) .java" wygląda jak blabla.java i javac utwórz kod bajtowy, taki jak (nazwa twojej głównej klasy) .class w twoim katalogu. ostatnio napisz w cmd "java (nazwa twojej głównej klasy)" i mój program zacznie działać
źródło
Aby uniknąć tego błędu, należy użyć polecenia javac z rozszerzeniem .java.
Javac DescendingOrder.java <- to działa idealnie.
źródło
Jeśli kompilujesz wiele plików w tej samej linii, upewnij się, że używasz javac tylko raz, a nie dla każdego pliku klas.
Błędny:
Poprawny:
źródło