Eclipse运行Java项目报javassist.tools.web.Webserver用法错误
问题根因
控制台输出Usage: java javassist.tools.web.Webserver <port number>后程序无响应、无其他异常,核心原因是Eclipse匹配了错误的项目启动入口:javassist.tools.web.Webserver是Javassist字节码工具依赖自带的调试用简易Web服务类,不属于业务项目的自有代码。该类的main方法强制要求传入端口号作为启动参数,未收到合法参数时仅打印用法说明后直接终止进程,因此不会输出额外异常日志。
排查解决步骤
- 修正运行配置主类
- 打开顶部菜单栏
Run->Run Configurations,定位到当前使用的Java Application类型运行配置 - 切换到
Main标签页,将Main class栏中错误的javassist.tools.web.Webserver,替换为项目中实际包含public static void main(String[] args)方法的业务启动类全限定名 - 点击
Apply保存配置后重新启动即可
- 打开顶部菜单栏
- 调整启动操作路径
若报错是右键项目根目录选择Run As -> Java Application触发的,属于Eclipse自动扫描main方法时的匹配错误:扫描范围覆盖所有依赖包时,会优先匹配到Javassist包内的工具类main方法。后续启动直接定位到自有启动类的.java文件,右键该文件选择Run As -> Java Application,会自动生成正确的运行配置。 - 清理无效运行配置
进入Run Configurations页面,找到所有主类为javassist.tools.web.Webserver的运行项,点击左上角删除按钮清除,避免后续启动时误选。 - 校验启动类签名与依赖
若确认主类选择正确仍触发报错,先检查自有启动类的main方法签名是否符合规范:必须为public static void main(String[] args)格式,漏写static修饰符、参数类型不匹配、方法非public都会导致Eclipse无法识别合法启动入口,转而匹配依赖包中的main方法。签名校验无误后,打开项目Build Path -> Configure Build Path,在Libraries标签页移除重复引入的无效Javassist依赖即可。
内容的提问来源于stack exchange,提问作者isita ghosh
相关产品推荐
相关产品推荐

