Java compiles to bytecode, not native ELF binaries. Bytecode can be decompiled back to readable Java code using widely-available tools. Code obfuscators rename variables and scramble control flow to slow down reverse engineering, but they cannot prevent decompilation entirely. The sandbox provides runtime security, not compilation protection.