编译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
如何编译此程序?
答案 0 :(得分:94)
您至少需要在此行中将.java
扩展名添加到文件名中:
javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices
来自official faq:
仅在明确请求注释处理时才接受类名“HelloWorldApp”
如果收到此错误,则在编译程序时忘记包含.java后缀。请记住,命令是javac HelloWorldApp.java而不是javac HelloWorldApp。
此外,在您的第二个javac示例中(实际包含.java
),您需要包含编译所需的所有所需的.jar文件。
答案 1 :(得分:13)
我也被这个难过,因为我包括.Java扩展......然后我注意到了首都J.
这也会导致“注释处理”错误:
javac myclass.Java
相反,它应该是:
javac myclass.java
答案 2 :(得分:4)
使用 javac ClassName.java 编译程序, 然后使用 java ClassName 来执行编译的代码。你不能只将javac与ClassName混合(没有java扩展名)。
答案 3 :(得分:3)
我了解到,通过将源文件存储在名为Java
的文件夹中,您也可以获得此错误答案 4 :(得分:1)
chandan@cmaster:~/More$ javac New.java
chandan@cmaster:~/More$ javac New
error: Class names, 'New', are only accepted if annotation processing is explicitly requested
1 error
因此,如果您在再次编译后错误地使用javac
来运行程序。
答案 5 :(得分:0)
如何在Ubuntu终端上重现这个神秘错误:
将它放在名为Main.java的文件中:
public Main{
public static void main(String[] args){
System.out.println("ok");
}
}
然后像这样编译:
user@defiant /home/user $ javac Main
error: Class names, 'Main', are only accepted if
annotation processing is explicitly requested
1 error
这是因为你没有在.java
结束时指定Main
。
这样做,并且有效:
user@defiant /home/user $ javac Main.java
user@defiant /home/user $
现在扯下你的额头,抱怨错误信息是如此神秘。
答案 6 :(得分:0)
错误“仅在明确请求注释处理时才接受类名”可能由以下一项或多项引起:
这可能不是导致此错误的完整原因列表,但这些是我到目前为止所知道的原因。
答案 7 :(得分:0)
也许您可能正在使用文件名而不是方法名进行编译....检查一次我也犯了同样的错误,但我很快就纠正了.....#happy Coding
答案 8 :(得分:0)
首先从https://www.oracle.com/technetwork/java/javase/downloads/index.html下载jdk。 然后在搜索中编写“编辑系统”环境变量 在打开的窗口中,我将底部称为“环境变量” 然后在系统变量enter image description here中 推底新 在字段中,将新变量写入“路径” 在字段中,将新值写入jdk中的文件夹bin中的目录,例如 “ C:\ Program Files \ Java \ jdk1.8.0_191 \ bin” 但是在我的操作系统中只能使用此“ C:\ Program Files \ Java \ jdk1.8.0_191 \ bin \ javac.exe” enter image description here 按确定3次
启动Cmd。 我推下窗户+R。 然后写cmd。 在cmd中写入“ cd(带代码的目录)”看起来像C:\ Users \ user \ IdeaProjects \ app \ src。 然后编写“ javac(程序的主类名称).java”,就像blabla.java 和javac在您的目录中创建字节码,例如(您的主类的名称).class。 最后在cmd“ java(您的主类的名称)”中写入内容,并且我的程序开始工作
答案 9 :(得分:0)
答案 10 :(得分:0)
我认为这也是因为编译不正确。
因此适用于linux(ubuntu).....
javac file.java
java文件
答案 11 :(得分:0)
答案 12 :(得分:0)
我从 Maven 项目创建了一个 jar 文件 (通过编写 mvn package 或 mvn install )
之后我打开 cmd ,移动到 jar 方向然后
运行这段代码
java -cp FILENAME.jar package.Java-Main-File-Name-Class
编辑:放入Pom文件后声明主要运行代码:
java -jar FILENAME.JAR
答案 13 :(得分:-2)
如果将ur文件保存为示例:hello.java和
类示例。在cmd中执行此操作
javac hello.java
java示例
有效。
答案 14 :(得分:-2)
您查看路径javac.exe和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