首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在windows中运行PMD

无法在windows中运行PMD
EN

Stack Overflow用户
提问于 2018-08-23 15:29:20
回答 1查看 887关注 0票数 0

我试图通过运行命令在windows中运行一个简单的java程序。

代码语言:javascript
复制
pmd -d path-to-source\com\vaannila\domain\User.java -f text -R java-basic

出现的错误如下所示。

线程“java.lang.NoClassDefFoundError”中的异常:C:\pmd\pmd 5/4/6\bin//\lib\asm-5/0/4/jar,原因是: java.lang.ClassNotFoundException: C:\pmd\pmd 5.4.6\bin.\lib\asm-5.0.4.jar at java.security.AccessController。java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247)的doPrivileged(原生方法)找不到主类: C:\pmd\pmd-bin-5.4.6\bin。.\lib\asm-5.0.4.jar.程序将退出。

请帮我运行PMD

EN

回答 1

Stack Overflow用户

发布于 2018-08-26 08:39:55

我不能重现你的问题,我也不能完全理解错误信息。

根据错误消息,您已经将PMD5.4.6解压缩到C:\pmd中,以便目录C:\pmd\pmd-bin-5.4.6存在。在这个目录中,有两个子目录:bin --它包含pmd.batlib,后者包含要放到类路径上的必要jars。

因此,不需要对系统进行进一步的配置,您应该能够在命令shell中简单地运行C:\pmd\pmd-5.4.6\bin\pmd.bat --您应该看到帮助屏幕(而不是NoClassDefFound异常)。

你能试试这个吗?这对你有用吗?如果不是,->重新安装PMD,因为您的安装似乎被破坏了。

我知道,您只是使用pmd来调用pmd --如果您当前位于C:\pmd\pmd-bin-5.4.6\bin目录中,或者如果您将这个目录添加到PATH环境变量中,这是可行的。即使我这样做,它也适用于我,无论我在哪个目录中。

您是否配置了类似于PATH环境变量的内容?

我无法理解错误消息-它声称,它找不到一个名为"C:\pmd\pmd-bin-5/4/6\bin//\lib\asm-5/0/4/jar".的类这不是一个类名,它看起来像一个被操纵的类路径--还可以查看正反斜杠的组合。这个错误的下一部分是"C:\pmd\pmd-bin-5.4.6\bin..\lib\asm-5.0.4.jar“--虽然它似乎是对的,但是缺少一个斜杠--它仍然没有意义。错误消息说,它找不到主类,但是主类称为net.soureforge.pmd.PMD

供参考,这里是原始内容 of pmd.bat

代码语言:javascript
复制
@echo off
set TOPDIR=%~dp0..
set OPTS=
set MAIN_CLASS=net.sourceforge.pmd.PMD

java -classpath %TOPDIR%\lib\* %OPTS% %MAIN_CLASS% %*

你能把这个和你的pmd.bat比较一下吗?我想你的档案看起来有点不一样。

您也可以在没有批处理文件的情况下运行PMD,例如:

java -classpath C:\pmd\pmd-bin-5.4.6\lib\* net.sourceforge.pmd.PMD -d path-to-source\com\vaannila\domain\User.java -f text -R java-basic

这对你有用吗?

P.S.:没错,PMD 5.4.6是最后一个运行在Java1.6上的。但这并不意味着较新版本的PMD不能分析Java1.6。代码。您只需要一个最近的java运行时(例如java 10或11)来执行PMD,需要一个单独的JDK来构建您的项目。PMD可以分析任何版本的java,它不依赖于java版本,而是与之一起运行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51989317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档