Saya mendapatkan kesalahan ini ketika saya mengkompilasi program java saya:
error: Class names, 'EnumDevices', are only accepted if annotation
processing is explicitly requested
1 error
Berikut adalah kode java (Saya menjalankan ini di 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);
}
}
}
Ini perintah javac:
javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices
Bagaimana cara mengkompilasi program ini?
.class
harus dihilangkan saat meluncurkan denganjava
).Saya bingung dengan ini juga karena saya memasukkan ekstensi .Java ... lalu saya perhatikan ibu kota J.
Ini juga akan menyebabkan kesalahan "pemrosesan anotasi":
Sebaliknya, seharusnya:
sumber
Menggunakan javac ClassName.java untuk mengompilasi program, lalu gunakan java ClassName untuk menjalankan kode yang telah dikompilasi. Anda tidak dapat mencampur javac dengan ClassName saja (tanpa ekstensi java).
sumber
Kesalahan "Nama kelas hanya diterima jika pemrosesan anotasi diminta secara eksplisit" dapat disebabkan oleh satu atau beberapa hal berikut:
Ini mungkin bukan daftar lengkap penyebab kesalahan ini, tetapi ini adalah penyebab yang saya sadari sejauh ini.
sumber
Jadi jika Anda tidak sengaja setelah kompilasi lagi gunakan
javac
untuk menjalankan program.sumber
Saya mengetahui bahwa Anda juga bisa mendapatkan kesalahan ini dengan menyimpan file sumber dalam folder bernama Java
sumber
Saya rasa ini juga karena kompilasi yang salah ..
jadi untuk linux (ubuntu) .....
javac file.java
file java
sumber
Bagaimana Anda dapat mereproduksi kesalahan samar ini di terminal Ubuntu:
Taruh ini di file bernama Main.java:
Kemudian kompilasi seperti ini:
Itu karena Anda tidak menentukan
.java
di akhirMain
.Lakukan seperti ini, dan berhasil:
Tampar dahi Anda sekarang dan mengeluh bahwa pesan kesalahannya sangat samar.
sumber
Mungkin Anda bisa mengkompilasi dengan nama file daripada nama metode .... Periksa sekali saya juga membuat kesalahan yang sama tetapi saya memperbaikinya dengan cepat ..... # selamat Coding
sumber
unduh dulu jdk dari https://www.oracle.com/technetwork/java/javase/downloads/index.html . Kemudian di pencarian tulis Edit variabel lingkungan Sistem Di jendela terbuka saya tekan bagian bawah disebut Variabel Lingkungan Kemudian di variabel Sistem masukkan deskripsi gambar di sini Dorong bawah baru Di bidang variabel baru tulis "Path" Di bidang nilai baru Tulis direktori di folder bin di jdk seperti " C: \ Program Files \ Java \ jdk1.8.0_191 \ bin "tetapi di OS saya hanya berfungsi ini" C: \ Program Files \ Java \ jdk1.8.0_191 \ bin \ javac.exe " masukkan deskripsi gambar di sini tekan ok 3 kali
Mulai Cmd. Saya mendorong jendela bawah + R. Kemudian menulis cmd. Dalam cmd tulis "cd (direktori Anda dengan kode)" terlihat seperti C: \ Users \ user \ IdeaProjects \ app \ src. Kemudian tulis "javac (nama kelas utama Anda untuk program Anda) .java" terlihat seperti blabla.java dan javac membuat kode byte seperti (nama kelas utama Anda) .class di direktori Anda. terakhir tulis di cmd "java (nama kelas utama Anda)" dan program saya mulai bekerja
sumber
Untuk menghindari kesalahan ini, Anda harus menggunakan perintah javac dengan ekstensi .java.
Javac DescendingOrder.java <- ini bekerja dengan sempurna.
sumber
Jika Anda mengompilasi beberapa file dalam satu baris, pastikan Anda menggunakan javac hanya sekali dan tidak untuk setiap file kelas.
Salah:
Benar:
sumber