Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Static initialization block differences between Java 13 and Java 8; with different IDE versions (netbeans 8.2 vs outdated apache netbeans 12)

Tags:

java

The only discernable difference between these two programs is the Java version.

The question is: what on earth is going on?

This image is proof that both programs contain exactly the same code, while producing different results.

enter image description here

here is the code:

static int x = 10;

static {
    x = x + 10;
}

public static void main(String[] args) {
    System.out.println(System.getProperty("java.version"));
    System.out.println(new Date(System.currentTimeMillis()));
    System.out.println(x);
}
  • LEFT side is using the old netbeans distribution.

  • RIGHT side is using the apache netbeans IDE.

  • LEFT side is using jdk8 (see image)

  • RIGHT side is using jdk13 (see image)

Based on the comments: jdk13 is EOL ... but some people are unable to reproduce it while using jdk13.

The question is: what's causing this?

  • netbeans distribution?
  • borked jdk
  • ... some setting in the apache IDE?
  • ... the stars being out of alignemnt?
  • etc.
like image 370
EverNight Avatar asked Jul 04 '26 19:07

EverNight


1 Answers

ANSWER: Underlying problem determined to exist in IDE's compilation/build/execution routine.

Reinstall and update IDE, adoption of non-EOL JDK.

enter image description here

Also, I did not import existing IDE settings.

like image 69
EverNight Avatar answered Jul 06 '26 09:07

EverNight