You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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个独立命令:

  1. javac -cp .:只指定了classpath但没给源文件,直接触发javac: no source files错误
  2. junit-4.12.jar:把jar文件当成命令执行,自然报错bash: junit-4.12.jar: command not found
  3. hamcrest-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

额外验证步骤

  1. 先执行ls命令,确认当前目录下确实存在LinkedListTest.java、junit-4.12.jar和hamcrest-core-1.3.jar,注意Git Bash是区分大小写的,文件名拼写要完全一致
  2. 编译成功后,运行测试的命令也要用同样的格式,比如:
java -cp ".;junit-4.12.jar;hamcrest-core-1.3.jar" org.junit.runner.JUnitCore LinkedListTest

内容的提问来源于stack exchange,提问作者Don_twice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:10:13