java学习-Cannot find class in classpath和“找不到或无法加载主类”

遇到问题

运行main方法的时候总是报错:找不到或无法加载主类
最近运行testNG中的用例时总是报错:Cannot find class in classpath:

org.testng.TestNGException: 
Cannot find class in classpath: TestD.TestMybatis
	at org.testng.xml.XmlClass.loadClass(XmlClass.java:81)
	at org.testng.xml.XmlClass.init(XmlClass.java:73)
	at org.testng.xml.XmlClass.<init>(XmlClass.java:59)
	at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.java:556)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:745)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
	at org.testng.xml.XMLParser.parse(XMLParser.java:39)
	at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:16)
	at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:9)
	at org.testng.xml.Parser.parse(Parser.java:172)
	at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:305)
	at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:46)
	at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)

解决办法一

之前多次搜索,终于找到一个解决办法,就是编辑Use classpath of module,切换成工程名字,然后再运行就不会报错。
可以每次运行都需要修改,很是烦人,一直希望能找到彻底解决的办法。
在这里插入图片描述

解决办法二

最近终于找到了最终解决办法,就是删除main.iml文件。
在这里插入图片描述
删除成功后可以看到main文件夹的颜色变为灰色,运行也不再报错。
在这里插入图片描述

其他

打开iml文件,是如下内容:
看起来是一些项目配置的东西
在这里插入图片描述
把它删除之后,右键点击就没有了运行按钮
在Terminal执行如下命令,文件又回来了。

mvn idea:module

在这里插入图片描述

晚上搜索了下,看到一个比较靠谱的解释
https://blog.csdn.net/u012627861/article/details/83028437
这个文件是项目标识文件,用于告诉编辑器这个目录并不是一个普通的目录,而是一个项目。

至此,困扰我多时的问题算是解决了。

发布了107 篇原创文章 · 获赞 10 · 访问量 9676

猜你喜欢

转载自blog.csdn.net/liying15/article/details/102761978
今日推荐