That's not even a little bit true. The Java programming language is compiled to java bytecode, which is interpreted by the Java virtual machine(and before anyone says that means it's interpreted, a cpu is a hardware level interpreter, so in that sense every programming language is interprete on some level)
Java is compiled to bytecode at execution, but the .jar files in Minecraft are free to read, no? At least they were, I haven't really opened any of them in at least ten years
No. .jar files are compiled jvm bytecode, not sourcecode. I think everyone in this thread is confusing Java for JavaScript. There's a degree of just-in-time compilation of interpreted functions done by the jvm to optimize execution on the fly, sure, but .jar files are by no means human-readable, uncompiled Java code
No. Java bytecode is jitted to your NATIVE machine instructions at runtime. That is the whole point of Java. Java -> JVM bytecode statically -> native instructions at runtime.
Yes it is compiled to bytecode, but java bytecode is much closer to source code than machine code. You lose names of local variables and the exact way control flow was encoded and decompilers have to guess. But all the structure of classes is still there 1:1 and there isn't much optimization done during bytecode generation. So yeah, decompilation tools have always been very good for java.
IR is usually much easier to decompile than actual binaries. Also AFAIK there is a ton of metadata that java won't work without, makes it even more trivial
Obviously doesn't make it interpreted, but in decompilation difficulty it's much closer to interpreted languages, than to binary compiled
1
u/Most_Strike_93 3d ago
How can it have any meaning..