如何将Eclipse中Java项目导出到SSH终端并避免找不到类错误?
解决方案
1. 解决JUnit测试类编译错误
无需删除MaxHeapTest.java(需完整提交src目录文件),编译时排除测试类即可:
- 若测试类均以
Test.java结尾,执行以下命令编译主代码:
该命令会过滤所有非测试类Java文件,避免因终端缺少JUnit依赖包导致的编译失败。javac $(ls *.java | grep -v Test.java)
2. 修复运行时NoClassDefFoundError
场景1:项目无包结构
编译完成后,运行时必须指定类路径为当前目录:
java -cp . MyLifeInStardew
多数环境下java命令默认类路径不包含当前目录,直接运行会找不到已编译的class文件。
场景2:项目存在包结构(类带package声明)
严格保留Eclipse中的目录结构:
- 例如类声明为
package com.stardew;,需将Java文件放在com/stardew/目录下(与src内结构一致) - 返回根目录(com文件夹的上级)执行编译:
javac com/stardew/*.java - 运行时指定根目录为类路径,使用全限定类名启动:
java -cp . com.stardew.MyLifeInStardew
3. 提交前验证
确保提交的src文件夹与终端内的目录结构完全一致(包含所有包文件夹),确认编译运行正常后再提交给教授。
内容的提问来源于stack exchange,提问作者Spyro1997
相关产品推荐
相关产品推荐

