Netbeans IDE Dev 201802140002 中的错误?

Bug in Netbeans IDE Dev 201802140002?

这是预计会产生错误的代码:

public class App {

    public static void main (String[] args) {
        tick();
    }

    public static void tick () {
        System.out.print("hi");

请注意,方法 tick() 和 class App 的右尖括号都丢失了。尽管 IDE 在编写代码时指示此错误,但编译并运行得很好。 Java(或我的 OS)看起来不像是问题,因为在命令行中执行 javac 肯定会失败。

更有趣的是...下面的代码在成功执行后抛出运行时异常 tick():

public class App {

    public static void main (String[] args) {
        tick();

    public static void tick () {
        System.out.print("hello..");

这里我也跳过了 main 的右括号。

我已经安装了支持 Java 9.

的 Netbeans 开发版

[这是评论而不是答案,但我想包含屏幕截图以表明我无法重现任何一个问题。]

一个有趣的问题。我刚刚下载了最新的夜间构建版本 (NetBeans Dev 201803060002) 并使用 Oracle JDK 9.04.

构建了您的代码

你的代码示例都无法为我编译。对于第一个示例,最后一行的错误是“在解析 System.out.print("hi"); 时到达文件末尾”。这是一个屏幕截图:

对于第二个示例,您删除了 main() 的结束括号,报告的附加错误是“表达式的非法开始 public static void tick () {":

我建议您尝试以下方法:

  • 创建一个新项目并新建 class "App2" 以查看是否可以使用相同版本的 NetBeans 重现该问题。
  • 如果不能,请查看为什么 App 可以编译而 App2 不能。
  • 如果您可以重现该问题,请下载最近的每晚构建版本以查看您是否仍然可以重现该问题(即无效的源代码可以干净地编译)。如果你做不到,那么我认为不值得提出错误报告或花更多时间解决这个问题。
  • 但是,如果您可以重现该问题,请务必提交错误报告。但我强烈建议在这样做之前能够复制失败。否则,如果 NetBeans 团队无法重现该问题,您可能会收到 WORKSFORME 响应。

还有一件事:使用该 RuntimeException 的堆栈跟踪更新您的 OP 会很有帮助,您还应该将其包含在您的错误报告中。

啊……我明白了。在某个时间点,我选中了 "Always run without asking" 复选框,从那时起我的 IDE 忽略了所有编译时错误,没有任何警告。

对不起各位...我的错。