Windows10下Git Bash编译JUnit测试报错‘junit-4.12.jar: command not found’求助
解决Git Bash下JUnit测试类编译报错的问题
看起来你踩了Git Bash和Windows命令行语法差异的坑!我来帮你拆解问题根源和解决办法:
问题原因分析
你在Git Bash里执行的编译命令:
javac -cp .;junit-4.12.jar;hamcrest-core-1.3.jar LinkedListTest.java
在类Unix风格的Git Bash中,分号;是命令分隔符,用来分割多个独立执行的命令。所以这条命令会被Git Bash拆成3个独立命令:
javac -cp .:只指定了classpath但没给源文件,直接触发javac: no source files错误junit-4.12.jar:把jar文件当成命令执行,自然报错bash: junit-4.12.jar: command not foundhamcrest-core-1.3.jar LinkedListTest.java:同样把jar文件当成命令,继续报错
而你之前在Windows命令提示符里没问题,是因为Windows用;作为classpath的分隔符,不会解析成命令分隔。
两种可行的解决方法
方法1:用引号包裹classpath参数
把整个classpath用双引号括起来,让Git Bash把里面的分号当成classpath的一部分,而不是命令分隔符:
javac -cp ".;junit-4.12.jar;hamcrest-core-1.3.jar" LinkedListTest.java
方法2:转义分号
在每个分号前加反斜杠\,告诉Git Bash这是classpath分隔符,不是命令结束符:
javac -cp .\;junit-4.12.jar\;hamcrest-core-1.3.jar LinkedListTest.java
额外验证步骤
- 先执行
ls命令,确认当前目录下确实存在LinkedListTest.java、junit-4.12.jar和hamcrest-core-1.3.jar,注意Git Bash是区分大小写的,文件名拼写要完全一致 - 编译成功后,运行测试的命令也要用同样的格式,比如:
java -cp ".;junit-4.12.jar;hamcrest-core-1.3.jar" org.junit.runner.JUnitCore LinkedListTest
内容的提问来源于stack exchange,提问作者Don_twice
相关产品推荐
相关产品推荐

