我正在尝试使用命令“run.sh pmd -d -f -R”在git bash上运行PMD,但是我收到错误消息“无法找到或加载主类net.sourceforge.pmd.PMD ”。我已经尝试在环境变量中设置类路径但仍然得到错误。有谁知道问题是什么?
答案 0 :(得分:0)
这似乎是PMD run.sh脚本中的一个错误。它支持cygwin环境,但git bash环境似乎不是一个vanilla cygwin环境(虽然所有必需的cygwin命令都在那里)。
该脚本构建了类路径。由于它在类似cygwin的环境下运行,因此类路径看起来像“/c/pmd-bin-5.5.4/lib/pmd-core-5.5.4.jar:...”。但是,Java Runtime在Windows下运行(而不是cygwin),因此需要将路径转换为“C:\ pmd-bin-5.5.4 \ lib \ pmd-core-5.5.4.jar; ...” 。请注意,使用路径的Windows表示法(驱动器号和分号作为路径分隔符)。
该脚本使用uname
命令来确定它是否在类似cygwin的环境中运行。它只检查“CYGWIN”。但git bash使用例如“MINGW64_NT-10.0”。
现在有the new issue #305,应尽快解决。
您可以通过将函数bin/run.sh
更改为:
is_cygwin
is_cygwin() {
case "$(uname)" in
CYGWIN*|MINGW*) # look also for MINGW!!
readonly cygwin=true
;;
esac
# OS specific support. $var _must_ be set to either true or false.
if [ -z ${cygwin} ] ; then
readonly cygwin=false
fi
}