我怀疑这些是 IDEA 造成 BUG 问题,但又找不到任何证据!

大家好,我是东哥。

相信大家开发时经常遇到一些由于使用IDEA工具造成的BUG问题,而且这些问题只能通过手动修改才可以,比如编译问题、命令行过长等等。

不是很理解,为什么有些问题IDEA官方,不考虑优化或者从根本上解决这些问题呢?可能有些朋友认为这就不是问题,这只是IDEA不完善或者本身就是IDEA预留的功能,后期会删除等等原因吧!但在这里暂定为BUG,我觉得也不是很过分。

虽然对于一些技术大佬这些问题可能很简单,但是出于各方面原因,还是决定整理一下,在使用IDEA时造成的BUG问题。

c7443f0d9789d744e12bb9fb7a6af510.png

问题一:IDEA运行报错Commandline is too long信息

详细错误信息如下:

Command line is too long.Shorten commandline for className or also forJUnit defaultconfiguration

问题分析:

大多数操作系统都有最大的命令行限制,当超出时,IDEA将无法运行应用程序。命令行大于32768个字符时,IDEA建议切换到动态类路径,将长类路径写入文件,然后由应用程序启动程序读取并通过系统类加载器加载。

解决方法:

在项目中.idea/workspace.xml文件中,找到如下内容:

<componentname="PropertiesComponent">
    ...
    <propertyname="dynamic.classpath"value="false"/>
</component>

将dynamic.classpath参数值设置为true,就可以解决IDEA报错。

问题二:IDEA提示Warning:java:源值1.5已过时,将在未来所有发行版中删除

平时在运行Java Web项目时,IDEA中提示信息:

Warning:java:源值1.5已过时, 将在未来所有发行版中删除

Warning:java:目标值1.5已过时, 将在未来所有发行版中删除

Warning:java:要隐藏有关于已过时选项的警告,请使用-Xlint:-options

解决方法:

方式一:通过IDEA修改JDK版本

1)打开ProjectStructure->Project,本人使用的是java8,因此演示讲解选择使用jdk1.8版本。

f30e58ce10186f3298a7d44ef6a75e01.png

2)打开ProjectStructure->Modules中Sources选项的Language level,进行设置。

d319a7100aa608dbe926dec7654c5e5a.png

3)打开File->Settings,找到Build,Execution,Deployment选项->Compiler->Java Compiler

54c9d39e80a635506ac1988560c6dc31.png

把所需的java版本按照上述设置方式修改后,就不会提示该信息。

方式二:maven项目,修改pom.xml文件

如果是maven项目,那么就是因为maven默认的编译环境是jdk1.5,需要修改pom.xml文件,加入<properties>属性,属性中添加maven.compiler.source和maven.compiler.target即可。

将下列内容增加到pom.xml文件:

<profiles>
    <!--指定jdk版本为1.8-->
    <profile>
    <id>jdk-1.8</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
    </profile>
</profiles>

问题三:Error(*,*) Java:程序包不存在

问题分析:

大多数情况下出现not found信息时,是指编译好的文件里找不到对应的文件,maven项目编译文件默认输出到taget目录,检查target目录下报错信息的文件是否存在。

解决办法:

方式一:刷新maven项目导入包

参考入图:

1b206c8414fde49cbadec2d274a714c3.png

方式二:导入依赖

31cc20f72ed4fec71a06d0348649d7ab.png

问题四:No MyBatis mapper was found

项目启动后,控制台输入错误日志如下:

[org.mybatis.spring.mapper.ClassPathMapperScanner]-NoMyBatis mapper was found in'[com.jingxuan.dao]'package.Please check yourconfiguration.

问题分析:

检查spring和mybatis配置文件与注解是否准确,如果把taget删掉重新comple不报错,那么就是idea编译的问题。

解决方法:

1、删除taget文件后重新compile或执行maven命令clean,如果还是出现同样的问题,则表明项目本身代码或配置文件有问题。

2、如果taget目录下找不到resource配置文件

在maven项目中pom.xml文件中加入以下配置内容:

<resource>
    <directory>src/main/resource</directory><!--所在目录-->
    <includes><!--扫描目录下.properties,.xml 文件-->
        <include>**/*.properties</include>
        <include>**/*.xml</include>
    </includes>
    <filtering>false</filtering>
</resource>

问题五:编译war包并部署至tomcat,报错\out\artifacts not found for the web module信息

原因分析:

Idea默认路径是根目录/out,而maven项目的输入路径是在target目录下,因此需要手动调整为根目录/target。

解决方法:

打开Project Structure->Artifacts->Outputdirectory选项,此处填写maven编译target目录的绝对路径即可。

3c0cc6975e8afc57b956de17d47beab2.png

公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!

最近有很多人问,有没有读者交流群!加入方式很简单,公众号Java精选,回复“加群”,即可入群!

Java精选面试题(微信小程序):3000+道面试题,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计等,在线随时刷题!

------ 特别推荐 ------

特别推荐:专注分享最前沿的技术与资讯,为弯道超车做好准备及各种开源项目与高效率软件的公众号,「大咖笔记」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片关注

文章有帮助的话,在看,转发吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值