On Windows 7 (and later), the process should run with elevated privileges to write to C:/Windows and similar directories. But if it was a problem, it would lead to another error message.
What I suspect: When starting a 32-bit JVM under 64-bit Windows, a new File("C:/Windows/System32") will point to C:\Windows\SysWOW64 and there is no info Folder under C:\Windows\SysWOW64\oobe
As a test:
public static void main(String[] args) { File sysdir = new File("C:/Windows/System32/oobe/info"); for(File file:sysdir.listFiles()) { System.out.println(file.getName()); } }
works fine with the 64-bit JRE and throws a NullPointerException under the 32-bit-JRE on the 64-bit version of Windows 7.
So, maybe you or another application recently installed the 32-bit version or changed your path to the 32-bit jre and thereby violated your application.
source share