Java编译错误求助:执行javac命令时遇未见过的异常
编译Java程序遇到未知错误?先从这些点排查!
Hey,我看你遇到了编译Java程序的棘手问题,搜不到解决方案确实闹心——咱们先从你给出的信息里挖挖可能的问题:
先看代码片段里的明显语法坑
你的代码片段里有几个一眼就能看到的编译错误,这些肯定会导致编译失败:
- 数组长度调用错误:
commands是String[]数组,获取长度应该用commands.length(不带括号),而不是commands.length()——后者是String类的方法,数组没有这个方法,这会直接触发编译报错。 - Switch语句语法不完整:
case 'G'后面没有加冒号:,而且没有后续的分支逻辑、break或者default,语法完全不合法。 - 方法返回值缺失:
find方法声明要返回String[]类型,但目前代码里没有任何return语句,这也是编译必报错的点。
再说说你的编译命令
你用的编译命令:
/usr/lib/jvm/java-8-sun/bin/javac -encoding UTF-8 -classpath ':*:/usr/share/java/*' Solution.java 1> compile.err 2>&1
这里有个小细节要注意:classpath里的:*写法在有些环境下可能会导致类路径解析异常,建议尽量明确指定需要的jar包,而不是通配当前目录所有文件。另外,你把编译输出重定向到了compile.err,一定要去看这个文件的内容!里面会有Java编译器给出的具体错误提示,比如上面说的语法错误都会在里面清晰列出来,这是定位问题的核心依据。
下一步该怎么做?
- 先把代码里的语法错误修正:
- 把
commands.length()改成commands.length - 给
case 'G'加上冒号,补充完整switch的分支逻辑和break语句 - 在
find方法末尾添加符合String[]类型的返回语句
- 把
- 查看
compile.err里的完整错误信息,如果还有问题,把这些错误内容贴出来,就能更精准地解决了。
内容的提问来源于stack exchange,提问作者Jackie
相关产品推荐
相关产品推荐

