Mac终端用javac带输入文件运行Java程序报注解处理错误如何解决
问题原因排查
你混淆了Java程序的编译阶段和运行阶段的命令用法,你编写的代码逻辑没有问题,错误完全来自终端执行的命令不符合规范:
javac是Java的编译命令,仅接收.java后缀的Java源文件作为入参,你额外传入的inputfile不是Java源文件,javac会默认将其识别为注解处理所需的资源文件,才会抛出你看到的报错。- 你代码中用到的
args[0]是Java程序运行时传递给main方法的参数,和编译命令javac完全无关。
正确执行步骤
- 先执行编译命令,仅传入Java源文件:
javac filename.java - 编译成功后,当前目录会生成对应的
filename.class字节码文件,此时再执行运行命令,传入你要读取的文件名作为入参:java filename inputfile
额外注意事项
- 确保你的
filename.java中的public类名和文件名完全一致,否则编译会失败 - 如果你的类声明了包名,运行时需要带上全限定类名,不能直接写filename
内容的提问来源于stack exchange,提问作者NMK
相关产品推荐
相关产品推荐

