Home Telegram Scroll Top

关于ja-netfilter适配Java17的问题

这两天总有人私信或评论跟我说:大事不好了,ja-netfilterJava17里用不起了!

这事听着就新鲜!我心想早在5月20日的提交中,我就兼容了Java17并且写在README里了。
所以,这个事情我本没当回事,直到问的人越来越多。细问之下,原来是JB家所有IDE2022.2版本默认启用Java17
故有写此短文专门来解释一下。

首先,请看项目的README.md,自认为写的是非常清楚了:

  • for Java 17 you have to add at least these JVM Options:
    --add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
    --add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
    

简单来说就是要在Java17中使用ja-netfilter,你需要:

  1. 你需用5月20日发布的ja-netfilter-v2022.2.0版本,否则可能无法启动。
  2. 你需添加这两条JVM参数,否则ja-netfilter无法访问Java17内置的ASM包。

JVM参数是加在启动命令里,还是加在JVM参数文件里,都可以。
至于为什么Java17要加这个配置,这是JVM规定的。你不加,项目用到的某些类就访问不到。具体你可以看这里

最后,使用一个工具,请养成先通读README的习惯!

分享本文到:

34 评论

回复 Neo取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注


  1. 你好,我如果通过/usr/share/applications里的快捷方式启动idea不会正常加载javaagent,用命令行启动idea时就能正常启动,请问我该如何解决?
    我使用的是Arch Linux

  2. 大神,咱们的群为什么被封了,想你了,大旗党不想没有组织!