java仅当现式请求_java - javac错误:只有在显式请求注释处理时才接受类名

java - javac错误:只有在显式请求注释处理时才接受类名

编译我的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

我该如何编译这个程序?

user513164 asked 2019-04-15T09:04:59Z

10个解决方案

85 votes

您至少需要在此行中添加.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文件。

aioobe answered 2019-04-15T09:05:40Z

11 votes

我也被这个难倒,因为我包括.Java扩展......然后我注意到了首都J.

这也会导致“注释处理”错误:

javac myclass.Java

相反,它应该是:

javac myclass.java

Tom Warfield answered 2019-04-15T09:06:18Z

4 votes

使用javac ClassName.java编译程序,然后使用java ClassName执行编译的代码。 你不能只将javac与ClassName混合(没有java扩展名)。

Yong Yuan answered 2019-04-15T09:06:42Z

3 votes

我了解到,通过将源文件存储在名为Java的文件夹中,您也可以获得此错误

David Miller answered 2019-04-15T09:07:06Z

0 votes

错误“只有在明确请求注释处理时才接受类名”可能由以下一个或多个原因引起:

编译时不使用.java扩展名作为java文件。

编译时.java扩展名(即.Java)的大写不正确。

编译时.java扩展名中的任何其他拼写错误。

在同时编译和运行时,忘记使用'&amp;&amp;' 连接两个命令(即javac Hangman.java java Hangman)。 我花了30分钟来解决这个问题,我通过运行编译和单独运行程序注意到这一点,当然这完全没问题。

这可能不是导致此错误的完整列表,但这些是我到目前为止所知道的原因。

joshgoldeneagle answered 2019-04-15T09:08:05Z

0 votes

如何在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 $

现在拍打你的额头,抱怨错误信息是如此神秘。

Eric Leschinski answered 2019-04-15T09:09:05Z

0 votes

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来运行程序。

chandan answered 2019-04-15T09:09:31Z

0 votes

也许您可能正在使用文件名而不是方法名称进行编译....检查一次我也犯了同样的错误但我很快就纠正了.....#happy Coding

Sai Saran answered 2019-04-15T09:09:58Z

-2 votes

如果将ur文件保存为示例:hello.java和

class Example.在cmd中执行此操作

javac hello.java

java示例

这样可行。

awuah answered 2019-04-15T09:10:53Z

-2 votes

您查看路径javac.exe和java.exe

D:\ Test&gt;“C:\ jdk1.7.0_80 \ bin \ javac.exe”TestMain.javaD:\ Test&gt;“C:\ jdk1.7.0_80 \ bin \ java.exe”TestMain.java

hnx answered 2019-04-15T09:11:26Z

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值