javac错误:只有在显式请求注释处理时才接受类名
当我编译java程序时,出现以下错误:javac错误:只有在显式请求注释处理时才接受类名,java,javac,Java,Javac,当我编译java程序时,出现以下错误: error: Class names, 'EnumDevices', are only accepted if annotation processing is explicitly requested 1 error 这是java代码(我在Ubuntu上运行) 如何编译此程序?您至少需要在此行的文件名中添加.java扩展名: javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-
error: Class names, 'EnumDevices', are only accepted if annotation
processing is explicitly requested
1 error
这是java代码(我在Ubuntu上运行)
如何编译此程序?您至少需要在此行的文件名中添加
.java
扩展名:
javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices
从:
只有在明确请求注释处理时才接受类名“HelloWorldApp” 如果收到此错误,则在编译程序时忘记包含.java后缀。请记住,该命令是javac HelloWorldApp.java,而不是javac HelloWorldApp
另外,在您的第二个javac示例中(您实际包含了
.java
),您需要包含编译所需的所有.jar文件 我也被这个问题难住了,因为我包括了.Java扩展。。。然后我注意到大写字母J
这也会导致“注释处理”错误:
相反,它应该是:
javac myclass.java
如何在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
这是因为您没有在Main
的末尾指定.java
这样做,它就会起作用:
user@defiant /home/user $ javac Main.java
user@defiant /home/user $
现在拍拍你的额头,抱怨错误消息太神秘了。错误“只有在明确请求注释处理时才接受类名”可能是由以下一个或多个原因造成的:
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
运行程序。使用javac ClassName.java编译程序,
然后使用java类名执行编译后的代码。您不能仅将javac与类名混合(没有java扩展)。 然后在搜索中写入编辑系统环境变量 在打开的窗口中,我按下名为环境变量的底部 然后是系统变量 推底新 在字段中,新变量写入“路径” 字段中的新值在jdk中的文件夹bin中写入目录 “C:\Program Files\Java\jdk1.8.0\U 191\bin” 但在我的操作系统中,仅此“C:\Program Files\Java\jdk1.8.0\U 191\bin\javac.exe” 按ok 3次 启动命令。 我推底窗+R。 然后写cmd。 在cmd中写入“cd(带代码的目录)”看起来像C:\Users\user\IdeaProjects\app\src。 然后写“javac(程序主类的名称).java”看起来像blabla.java 和javac在目录中创建字节码,如(主类的名称).class。 最后一次使用cmd“java(主类名称)”编写,我的程序开始工作 为了避免这个错误,您应该使用带有.java扩展名的javac命令
Javac degendingorder.java如果在同一行中编译多个文件,请确保仅对每个类文件使用一次Javac 不正确:
正确:我从Maven项目创建了一个jar文件 (通过写入mvn包或mvn安装) 之后,我打开cmd,移动到jar方向,然后 要运行此代码
java -cp FILENAME.jar package.Java-Main-File-Name-Class
已编辑:在Pom文件中放入declar后,运行代码的主文件:
java -jar FILENAME.JAR
那也是,但我想,我还是不会犯那个特别的错误。应该有一个“未找到文件”或类似的内容。我同意。特别是因为这样做很容易出错(因为在使用
java
启动时应忽略.class
)“只有在明确请求注释处理时才接受类名“HelloWorldApp”。多么愚蠢的方式说文件找不到。或者错误消息应该指什么?我只能找到此修复,但无法找到错误消息如此措辞的原因。启用注释处理后,您可以在编译期间以编程方式生成类。因此,通过注释处理,即使文件不存在,您实际上也可以编译某些内容(即,您可以动态创建缺少的部分)。诚然,错误消息具有误导性。如果我进一步调查的话,我会再打给你的。你也没有:D!在这两个示例中,您都编写了Main而没有.java!
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
java -cp FILENAME.jar package.Java-Main-File-Name-Class
java -jar FILENAME.JAR