The forge + 2 thing is due to CurseForge displaying the version numbers in a really bad and annoying way. Forge itself is treated as a version number instead of as a mod loader or project type. So a mod for forge which supports 1.12.2 will be forge + 1. The Java version is treated similarly, so if they say java 8 (the default) then it is forge + 2. You may have to click on the file itself to see the real version.