【发布时间】:2018-05-19 05:33:07
【问题描述】:
我正在教我的朋友一些 Java,但我们在尝试在她的 Hello World 程序上运行编译器时遇到了问题。该代码有一个非常明显的错误 (Sysrem.out.println),但其他方面是完全有效的 Java,但由于某种原因编译器没有报告错误。事情是这样的:
- 当我们在 Windows 命令提示符中运行
javac Hello.java时,它会打印出一个空白行,然后是一个新的命令提示符行,好像操作成功了,但显然没有 - 没有创建类文件,当然,代码有错误,所以我们知道它不会成功。 - 当我们运行
javac -verbose Hello.java时,它会打印出正在加载的类文件的血腥细节,但仅此而已。虽然它没有说它写了一个类文件,但它也没有打印出错误。 - 在我们修复错误后,程序编译并运行没有问题,所以看起来 javac 只是不喜欢打印编译器错误。
这里可能发生了什么,为什么编译器没有像它应该的那样报告这个错误?
完整代码:
public class Hello {
public static void main(String[] args) {
Sysrem.out.println("Hello, world!");
}
}
命令提示符:
C:\Users\MyFriendsName\Documents>javac Hello.java
C:\Users\MyFriendsName\Documents>
【问题讨论】:
-
显示代码..
-
Sysrem 应该是 System.
-
@ShanuGupta 刚刚添加了代码。我知道代码中的问题是什么,但我不知道为什么编译器没有按预期打印出错误。
-
您的完整代码看起来不错,但您没有在其中使用
Sysrem。 Javac 只是在编译它。 -
安装了 Window JDK 的人可以尝试重现此行为吗?我很难相信
javac会这样做......除非你做了一些事情来重定向或抑制编译错误消息。
标签: java windows compiler-errors javac