Spotbugsã®ãã«ããå¼ããã¨ãã¦ãã¦æ°ã«ãªã£ãã®ã§èª¿ã¹ã¦ã¿ãã
以ä¸ã®ããã«ã--releaseã¨-source/-target ã使ã£ãæã§æåãéãã
ã¾ãã¯ããã«Spotbugsã®è©±ã«ãªãããSpotbugsã«ã¯ãã¼ã«ã®ç¹æ§ä¸ããã¹ãã±ã¼ã¹ã¨ãã¦Javaãã¡ã¤ã«ãä¸ã«æºãè¾¼ãã§ããã ã¾ãããã®ä¸ã«ã¯åé¤ããã¦ãã¾ã£ãæ¨æºã©ã¤ãã©ãªã®APIã«é¢ãããã¹ãã±ã¼ã¹ããã å¤ãJavaã§ãã«ãããå¿ è¦ã®ãããã¡ã¤ã«ãããã
ãã®ä¸ã§ä»åãã£ãã®ã以ä¸ã®ãããªã¯ã©ã¹ã ã
class RunFinalizersOnExit { int f() { System.runFinalizersOnExit(true); return 42; } }
System#runFinalizersOnExit 㯠Java11ã§åé¤ãããã¡ã½ããã ã ãã®ããããã®ã¯ã©ã¹ã¯Java8ã®æ¨æºã©ã¤ãã©ãªãå¿ è¦ã«ãªãã¯ãã ã
ãããã--release
ã使ã£ãå ´åãããã¯ãªããªãã
ãªããªãã¿ã¤ãã«ã«ãæ¸ããã¨ãããOpenJDKã®Javacã³ã³ãã¤ã©ã¯ãå
é¨ã«å¤ããã¼ã¸ã§ã³ã®ã·ã³ãã«ãæºãè¾¼ãã§ãã¦
å¤ãã¿ã¼ã²ãããæå®ãããæã¯ããã®ã·ã³ãã«ãã¡ã¤ã«ã使ãããã ã
ãã®ãã£ã¬ã¯ããªã«ã·ã³ãã«ãå ¥ã£ã¦ãã¦ã java.base-8.sym.txtãªã©ãããããã®ãããã®ãã¡ã¤ã«ã«æ¸ããã¦ããã·ã³ãã«ãèªã¾ãã¦ããã®ã ã¨æãããã
使ã£ã¦ããJVMã«ä»å±ããæ¨æºã©ã¤ãã©ãªã®ã·ã³ãã«ã®ã¿ã解決ã§ãããã®ã ã¨æã£ã¦ããã®ã§é常ã«é©ããã çµããã
追è¨:
ãã®è¾ºã§ãã·ã³ãã«ãä¿åãããã¤ããªãçæãã¦ãã¦
$JAVA_HOME/jmods/jdk.compiler.jmod
ã®ä¸ã® lib/ct.sym ã¨ããã¨ããã«æ ¼ç´ããã¦ããããã ã
(jmodãã¡ã¤ã«ã¯ãã ã®zipã§ãï¼