Java 8:“UseSplitVerifier”的等价物是啥?
Posted
技术标签:
【中文标题】Java 8:“UseSplitVerifier”的等价物是啥?【英文标题】:Java 8: What is the equivalent of "UseSplitVerifier"?Java 8:“UseSplitVerifier”的等价物是什么? 【发布时间】:2015-10-12 12:53:55 【问题描述】:我在 Mac 10.9.5 上使用 Maven 3.2.3,并将它用于我的编译器插件...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgument>-proc:none</compilerArgument>
<fork>true</fork>
<!-- <compilerId>eclipse</compilerId>-->
</configuration>
<executions>
<execution>
<id>default-testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
我有这个用于我的surefire-plugin 配置...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<reuseForks>true</reuseForks>
<argLine>-Xmx2048m -XX:MaxPermSize=512M -XX:-UseSplitVerifier $argLine</argLine>
<skipTests>$skipAllTests</skipTests>
</configuration>
</plugin>
但是,在运行“mvn clean install”时,我收到了这个警告......
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSplitVerifier; support was removed in 8.0
Java 8 中的“UseSplitVerifier”是什么?
【问题讨论】:
【参考方案1】:没有等价物。请注意,您的配置中的选项是 -UseSplitVerifier
(注意前面的减号),因此选项说 not 使用 SplitVerifier,但从 Java 8 开始,SplitVerifier 是强制性的。
SplitVerifier 是随 Java 6 引入的,当时是可选的,并成为 Java 7 的默认设置。但在 Java 7 中,该选项仍受支持,因此可以在字节码处理工具不兼容的情况下将其关闭。
这是为了提供一个宽限期,在此期间这些工具可以更新以与相关的StackMapFrame
字节码属性兼容。宽限期现已结束。
如果您遇到的唯一情况是该警告,换句话说,您没有遇到兼容性问题,您可以删除该选项。否则,您必须更新有问题的工具/库。
【讨论】:
【参考方案2】:您应该停止使用 -XX:-UseSplitVerifier。无论如何,Java 8 不支持它。 并将您的 maven-compiler-plugin 升级到 3.2 。这将解决您的字节码验证问题。
【讨论】:
以上是关于Java 8:“UseSplitVerifier”的等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章
java取余。刚开始学习java 遇到这种问题就犯迷,求各位大神讲解一下。 8%2 //
在 Tomcat 6-Java 7/8 中运行 Tomcat 6-Java 6 WebApps