When I run my program, the following code returns a null
ConsoleApp.class.getPackage().getImplementationVersion()
However, when I copy the JAR file to another folder outside my project's folder and execute it on the console, it returns the version number of my program correctly. I'm assuming my program has no access to the MANIFEST file during runtime. Still, I haven't found a satisfactory answer to this behaviour. Why is this happening? What's happening behind the scenes?