所以我最终转向Java15,发现我的旧代码不再编译了。我使用包中的类 sun.jvmstat.monitor
和阶级 LocalVmManager
检索系统中运行的所有jvm的pid:这在java8上工作,但在java15上不再工作了(我认为它在java9之后就不工作了)。
多亏了intellij,我发现我需要将以下选项传递给 javac
: --add-exports jdk.internal.jvmstat/sun.jvmstat.perfdata.monitor.protocol.local=ALL-UNNAMED --add-exports jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED --add-exports jdk.internal.jvmstat/sun.jvmstat.monitor.event=ALL-UNNAMED
事实上,通过这个选项,我可以通过命令行编译。但我也想通过 mvn compile
. 如何在pom.xml中为编译器指定选项?
我尝试了以下方法但没有成功:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>15</release>
<compilerArgs>
<arg>--add-exports</arg>
<arg>jdk.internal.jvmstat/sun.jvmstat.perfdata.monitor.protocol.local=ALL-UNNAMED</arg>
<arg>--add-exports</arg>
<arg>jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED</arg>
<arg>--add-exports</arg>
<arg>jdk.internal.jvmstat/sun.jvmstat.monitor.event=ALL-UNNAMED</arg>
</compilerArgs>
<fork>true</fork>
</configuration>
</plugin>
同时,我将更改代码,并通过扫描 /proc/
目录。
暂无答案!
目前还没有任何答案,快来回答吧!