Java NetBeans同包类命令行编译报cannot find symbol错误求助
问题解决方法
错误根源
报错由Java包机制的编译执行路径规则不匹配导致:Java 11+的单文件直接执行特性(java xxx.java)只会编译当前指定的单个源文件,不会自动编译同包下的依赖类SpaService,同时执行带包的类需要符合类路径的根目录要求。
正确操作步骤
- 第一步:切换到源码根目录(包结构的顶层目录)
打开命令行执行以下命令:cd C:\Users\waxyshaw\Desktop\School\CH3-EX11\SpaService\src\main\java - 第二步:一次性编译所有关联的源文件
执行编译命令,同时编译两个同包类:javac com\spaservice\*.java
执行完成后,com\spaservice目录下会生成SpaService.class和CreateSpaServices.class两个字节码文件。 - 第三步:执行主类时使用全限定名
执行时需要写全「包名+类名」的完整路径:java com.spaservice.CreateSpaServices
临时测试方案
如果不需要保留包结构做临时测试,可以删除两个Java文件第一行的package com.spaservice;代码,然后直接在com\spaservice目录下执行以下命令即可运行:
javac *.java java CreateSpaServices
内容的提问来源于stack exchange,提问作者Waxyshaw
相关产品推荐
相关产品推荐

