IDEA 编译错误:java: try-with-resources is not supported in -source 1.5

本文详细介绍了如何解决Java编译时出现的try-with-resources不支持错误,通过修改Maven配置文件pom.xml和IDEA设置,调整源代码和目标代码版本至1.8,以确保项目能够正确编译。

错误描述:

Error:(59, 20) java: -source 1.5 中不支持 try-with-resources (请使用 -source 7 或更高版本以启用 try-with-resources)

这里说明编译版本太低,需要更新到jdk1.7或者更高。

解决方法:

一、修改pom.xml

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-compiler-plugin</artifactId>
     <configuration>
          <source>1.8</source>
          <target>1.8</target>
     </configuration>
</plugin>

二、修改IDEA配置,默认就使用1.8版本 

点击File -> Settings -> Build,Execution,Deployment -> Compiler -> Java Compiler 
Project bytecode version下拉框选择1.8。 
该选项不会生效,因maven项目并没有使用此处指定的编译器。

以上方法若还是不能解决您问题的话,可以尝试以下的方法:

 

1、设置当前模块的 Source Language Level:
File -> Project Structure -> Modules -> Sources -> Language Level

选择 8 - Lambdas, type annotations etc.

设置完成之后没有了之前的那个错误了,但是有可能出现了另一个错误:

Error:java: javacTask: source release 1.8 requires target release 1.8

报错信息表达编译器需要的source已经是1.8了,但同时target也要设置为1.8

2、设置当前模块的 Target Language Level:
File -> Settings -> File | Settings | Build, Execution, Deployment -> Compiler -> Java Compiler -> Per-module bytecode version -> Target bytecode version 选择 1.8


最后重新编译一下,再运行项目~

09:49:06.099 [main] ERROR org.springframework.test.context.TestContextManager - Caught exception while allowing TestExecutionListener [org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@791cbf87] to prepare test instance [com.tplink.cdd.openapi.bridge.port.internal.controller.OpenApiVmsSiteControllerTest@a7e2d9d] java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:88) ~[mockito-core-4.5.1.jar:?] at com.sun.proxy.$Proxy22.getHandler(Unknown Source) ~[?:?] at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:110) ~[mockito-core-4.5.1.jar:?] at org.mockito.internal.configuration.injection.scanner.MockScanner.isMockOrSpy(MockScanner.java:83) ~[mockito-core-4.5.1.jar:?] at org.mockito.internal.configuration.injection.scanner.MockScanner.preparedMock(MockScanner.java:71) ~[mockito-core-4.5.1.jar:?] at org.mockito.internal.configuration.injection.scanner.MockScanner.scan(MockScanner.java:59) ~[mockito-core-4.5.1.jar:?] at org.mockito.internal.configuration.injection.scanner.MockScanner.addPreparedMocks(MockScanner.java:45) ~[mockito-core-4.5.1.jar:?] at org.mockito.internal.configuration.InjectingAnnotationEngine.injectCloseableMocks(InjectingAnnotationEngine.java:112) ~[mockito-core-4.5.1.jar:?] at org.mockito.internal.configuration.InjectingAnnotationEngine.processInjectMocks(InjectingAnnotationEngine.java:61) ~[mockito-core-4.5.1.jar:?] at org.mockito.internal.configuration.InjectingAnnotationEngine.process(InjectingAnnotationEngine.java:48) ~[mockito-core-4.5.1.jar:?] at org.mockito.MockitoAnnotations.openMocks(MockitoAnnotations.java:81) ~[mockito-core-4.5.1.jar:?] at org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener.initMocks(MockitoTestExecutionListener.java:83) ~[spring-boot-test-2.7.8.jar:2.7.8] at org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener.prepareTestInstance(MockitoTestExecutionListener.java:60) ~[spring-boot-test-2.7.8.jar:2.7.8] at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) [spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) [spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) [spring-test-5.3.25.jar:5.3.25] at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) [spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) [spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) [spring-test-5.3.25.jar:5.3.25] at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) [junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) [spring-test-5.3.25.jar:5.3.25] at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) [spring-test-5.3.25.jar:5.3.25] at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) [junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner.run(ParentRunner.java:413) [junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) [spring-test-5.3.25.jar:5.3.25] at org.powermock.modules.junit4.internal.impl.DelegatingPowerMockRunner$2.call(DelegatingPowerMockRunner.java:149) [powermock-module-junit4-2.0.0.jar:2.0.0] at org.powermock.modules.junit4.internal.impl.DelegatingPowerMockRunner$2.call(DelegatingPowerMockRunner.java:141) [powermock-module-junit4-2.0.0.jar:2.0.0] at org.powermock.modules.junit4.internal.impl.DelegatingPowerMockRunner.withContextClassLoader(DelegatingPowerMockRunner.java:132) [powermock-module-junit4-2.0.0.jar:2.0.0] at org.powermock.modules.junit4.internal.impl.DelegatingPowerMockRunner.run(DelegatingPowerMockRunner.java:141) [powermock-module-junit4-2.0.0.jar:2.0.0] at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:117) [powermock-module-junit4-common-2.0.0.jar:2.0.0] at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:57) [powermock-module-junit4-common-2.0.0.jar:2.0.0] at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59) [powermock-module-junit4-2.0.0.jar:2.0.0] at org.junit.runner.JUnitCore.run(JUnitCore.java:137) [junit-4.13.2.jar:4.13.2] at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) [junit-rt.jar:?] at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) [junit-rt.jar:?] at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) [idea_rt.jar:?] at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) [junit-rt.jar:?] at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:231) [junit-rt.jar:?] at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) [junit-rt.jar:?] Caused by: java.lang.IllegalStateException: Failed to load interface org.mockito.plugins.MockMaker implementation declared in sun.misc.CompoundEnumeration@1d71006f at org.mockito.internal.configuration.plugins.PluginInitializer.loadImpl(PluginInitializer.java:58) ~[mockito-core-4.5.1.jar:?] at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:69) ~[mockito-core-4.5.1.jar:?] at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:54) ~[mockito-core-4.5.1.jar:?] at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:28) ~[mockito-core-4.5.1.jar:?] at org.mockito.internal.configuration.plugins.Plugins.<clinit>(Plugins.java:22) ~[mockito-core-4.5.1.jar:?] at org.mockito.internal.configuration.GlobalConfiguration.tryGetPluginAnnotationEngine(GlobalConfiguration.java:50) ~[mockito-core-4.5.1.jar:?] at org.mockito.MockitoAnnotations.openMocks(MockitoAnnotations.java:80) ~[mockito-core-4.5.1.jar:?]
09-05
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值