tnelson/Forge

OpenJDK messages break Java version check

Closed this issue · 1 comments

Java is annoyingly verbose, in more ways than one would expect. Specifically: if _JAVA_OPTIONS is set in the environment, it will write Picked up _JAVA_OPTIONS: followed by the value of the environment variable to stderr, resulting in an error:

Forge version: 2.5.0
To report issues with Forge, please visit https://report.forge-fm.org
forge/shared: Error checking Java version
  java exe: #<path:/usr/bin/java>
  version string: "Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel\nopenjdk version \"11.0.18\" 2023-01-17\nOpenJDK Runtime Environment 11.0.18_p10 (build 11.0.18+10)\nOpenJDK 64-...
  context...:
   /home/jakob/.racket/8.7/pkgs/forge/pardinus-cli/server/server.rkt:9:0: pardinus-initializer
   /home/jakob/.racket/8.7/pkgs/forge/kodkod-cli/server/server-common.rkt:39:4: initialize method in server%
   /home/jakob/.racket/8.7/pkgs/forge/pardinus-cli/server/kks.rkt:21:0: start-server
   /home/jakob/.racket/8.7/pkgs/forge/send-to-kodkod.rkt:38:0: send-to-kodkod
   /home/jakob/.racket/8.7/pkgs/forge/sigs-functional.rkt:451:0: run-from-state
   body of "/home/jakob/University/CSCI 1710/Homework/forge1/grandpa.frg"

Possible solutions:

  • Exclude the output of stderr when collecting the version string (The version string is /also/ written to stderr.)
  • Unset _JAVA_OPTIONS when collecting the version string