相关文章推荐
憨厚的人字拖  ·  Azure Windows VM ...·  1 年前    · 
英俊的蚂蚁  ·  lambda if else python ...·  1 年前    · 

本文解决问题主要参考——无法找到主类问题解决方法的汇总: https://blog.csdn.net/Angry_Mills/article/details/81511130

首先这个问题,产生的原因有很多,需要逐个排查,但是如果根据自己问题发生的情况和特征,可以帮助你更快的定位问题和解决。本文主要描述我定位问题的过程和解决方式

描述一下我的问题,clone一个新的多模块项目,执行报错。我的情况特征如下:

  • 项目在其他同事那里可以正常运行
  • 本地其他多模块项目可以正常运行

所以,问题应该出现在这个项目在本地运行时的一些配置问题,和IDEA的配置以及项目本身无关。两个解决方式,亲测,两种方式都可以解决我的问题。

  • 删除本地项目,参考 博客 的第六部分,使用通过http链接,使用IDEA来重新从Git上clone项目。
  • 检查项目在IDEA中的一些相关设置——Project Structure和运行方式(Configuration)的设置

如果你的代码已经做了一些本地修改,并由于一些原因,无法提交,第二种方法更适合你,虽然它更麻烦一些。本文接下来会详细介绍一下如何排查问题及解决问题。

一、运行方式

从最简单的开始,可能在运行时你没有准确告诉IDEA主类的位置,我们通过“Edit Configuration”来检查一下,这个主要时配置项目运行时的参数,打开方式如下图。

主要观察下图位置,2是整个项目的文件目录,1是主类(启动类,如果不知道在哪里,点击下拉框,IDEA会自动加载,或者直接连续按两下shift查找main()函数位置即可知),3是1所在的模块(如果不是多模块项目,这里和2一样),如果选择了1,3会自动加载进来。

二、Project Structure配置

如果一没有任何帮助,那么很有可能是项目配置出现问题,简单说IDEA读不懂你的项目结构了。打开Project Structure(参考 博客 ),出现这个问题,一般都是“Modules”配置出现问题。不要急,这里会稍微有一点麻烦,慢慢排查就会解决。

首先来看module的整体结构是否规范。单模块项目,这里比较简单,只有一个主模块,下面打开后有一个spring和一个web,类似下图的“web”目录。这里演示的是多模块项目,分为三类:主模块、启动类所在模块、其他模块。主模块flow也是项目名称,下面什么都没有;启动类所在模块,下面有spring和web的module;其他模块下只有一个spring的module。缺什么点上方的加号,按照图标选择新建需要的模块即可。

然后我们来看模块内部的配置,产生这个问题,只有可能发生在主模块和启动类所在模块里,每个模块有四大类配置,这个问题又仅与其中的“Source”和“Paths”配置相关。

我的问题出在主模块的“Source”配置中。正常右侧的Content Root只有一个文件根目录,我当时这里还有所有其他子模块的目录,处理方法,把没有用的模块叉掉就好了。

同理,启动类所在的模块也是类似的。右侧的Content Root只有本模块所在的根目录,除此之外,还需要做一些项目的基本配置。需要配置好Source、Resource和Excluded目录。

然后检查一下Path目录,我的项目是spring boot目录,生成的class文件放在各个根目录下的target/classes和target/test-classes目录下,其他类型的项目可能略有不同,也可仿照其他人的项目进行配置。

点击OK,配置结束,手工。重新运行一下

三、清理缓存

什么?你还没好?清一下缓存吧。老天保佑这一步执行之后就可以顺利解决问题~

清理缓存重启IDEA  file-->invalidate Cache/restart

结果:启动服务仍然报同样的错误 2,缓存问题; 尝试:菜单—》File—》Invalidate Caches/Restart 选择Invalidate and Restart 或者 只是Invalidate,清除掉缓存,然后Rebuild Pro 该问题是很多人都碰到过的,而我昨天恰巧也碰到了一次,但是用了网上查的各种方法,比如清理缓存、重新 加载 等方法都不管用,但是阴差阳错之间,我把我的web项目换到了一个可以使用的文件夹中,这个时候问题就解决了。大家在碰到这种问题时,不妨先试试其他人提供的方法,最后如果还不行就可以按照这种方法尝试一下,如果又看不懂的,欢迎大家留言询问。 原因1、启动类路径错了 由于我本来项目路径是com.elif.manager,启动类路径是com.elifen.manager.ManagerApplication,后面为了和其他小伙伴路径统一,改成com.elif.manager,但是IDE的RUN/Debug的Configuration路径没有变,导致 不到 启动类 报错 其实IDE已经给提示了,你的启动类配置上有个小❌ 原因二:缓存问题 某天不知道啥原因,项目启动就 报错 不到 无法 加载 主类 ,观察半天,始终看不出解决办法,遂尝试执行File -&gt. 打开右上角的Edit Configurations,发现有飘红 报错 ,说 不到 这个类所在的包 再打开左侧的工程文件目录,发现上述包所在的目录是一个普通目录,导致编译器 不到 这个路径 三、解决方案 右击包所在的目录scala,选择Mark Directory as -> Sources Root,这样编译器就可以识别到这个包的路径了 从同事那里复制过来的项目,或者经过修改的项目,或者本地项目更改了启动类的名称时,都有可能会出现此异常“ 不到 无法 加载 主类 xxxx”。 打开 idea 的 project structure 1、看一下moudle的名称是否与现在的项目名称一致。 2、看一下moudle中的paths设置中,jar包的输出位置,以及编译输出位置是否和现在修改后预设的相同。 3、修改为相同后,maven clean,重新运行项目,看看是不是有了。 1、打开运行设 结果:启动服务仍然报同样的错误 2、缓存问题; 尝试:菜单—》File—》Invalidate Caches/Restart 选择Invalidate and Restart 或者 只是Invalidate,清除掉缓存,然后Rebuild Project 结果:启动成功,问题解决 3、设置一下file–>project structure–>Module: paths里面的编译路径Complier outpu EDF阅读器 允许用户在 Matlab 中读取 .edf 脑电图文件。 在 Matlab 中读取小的 EDF 文件相对容易,网上有多种方法可以这样做。 但是,当 EDF 文件非常大时,这些工具不能很好地工作,因为它们通常会尝试将整个文件读入内存。 这个 EDF-Reader 创建一个代表 EDF 文件的对象,并提供对 EDF 文件中数据的随机访问。 创建对象时,将 EDF 标头读入对象,并且可以使用 GETDATA 方法读取(部分)可用数据。 Example: Reading the first 10000 values of the second channel in 'newFile.edf' >> out = EDFData('newFile.edf') out = EDFData with properties: