NetBeans 12(JDK17)项目编译成功但无输出求助
以下是针对你遇到问题的具体排查和解决步骤:
先排查驱动加载的异常信息
编译成功不代表运行时能正常加载Derby驱动。Class.forName("org.apache.derby.jdbc.ClientDriver")如果找不到驱动类,会抛出ClassNotFoundException,但你的catch块仅打印e.getMessage(),部分场景下这个信息为空,导致你看不到异常。修改catch块打印完整异常栈:catch(Exception e){ e.printStackTrace(); // 替换原有的打印语句,能看到完整异常路径 }如果确认是驱动缺失,在NetBeans中右键项目 → 库 → 添加库 → 选择Java DB Driver(Derby)完成引入。
验证JDK与Derby的兼容性
JDK 17属于高版本,NetBeans 12默认搭配的Derby版本(如10.x)可能对Java 17支持不足。建议升级Derby到10.16及以上版本,手动将最新的Derby驱动jar包添加到项目库中。解决控制台输出缓冲问题
部分情况下System.out的输出会因缓冲延迟显示,在打印菜单的语句后强制刷新输出流:System.out.println("1.Insert 2.Update 3.Delete 4.Display 5.Exit\nEnter your choice:"); System.out.flush(); // 添加此行强制输出逐步隔离books类的影响
虽然代码无报错,但books类的方法可能存在阻塞或隐性异常。先注释掉books b=new books();及switch里的方法调用,仅保留菜单打印和输入逻辑,测试是否能正常显示菜单并接收输入,逐步定位问题点。检查NetBeans运行配置
右键项目 → 属性 → 运行,确认主类为Bookclass;右键项目 → 属性 → 库,确认Java平台选择的是JDK 17,避免因配置错误导致程序未正确执行。
内容的提问来源于stack exchange,提问作者Candy

