关于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的习惯!

分享本文到:

25 评论

留下评论

您的电子邮箱地址不会被公开。