{
  "id": "java-compiler-357970-ca26ab681756a59b",
  "slug": "java-compiler",
  "title": "Java compiler",
  "qid": "Q3081213",
  "lead": "A Java compiler is a compiler for the Java programming language. Some Java compilers output optimized machine code for a particular hardware/operating system combination, called a domain specific computer system. An example would be the now discontinued GNU Compiler for Java. The most common form of output from a Java compiler is Java class files containing cross-platform intermediate representation (IR), called Java bytecode. The Java virtual machine (JVM) loads the class files and either interprets the bytecode or just-in-time compiles it to machine code and then possibly optimizes it using dynamic compilation. A standard on how to interact with Java compilers was specified in JSR 199. It is provided by module jdk.compiler , and requires the full Java Development Kit (as opposed to just the Java Runtime Environment), and reside in the javax.tools.* namespace.",
  "body": "A Java compiler is a compiler for the Java programming language. Some Java compilers output optimized machine code for a particular hardware/operating system combination, called a domain specific computer system. An example would be the now discontinued GNU Compiler for Java. The most common form of output from a Java compiler is Java class files containing cross-platform intermediate representation (IR), called Java bytecode. The Java virtual machine (JVM) loads the class files and either interprets the bytecode or just-in-time compiles it to machine code and then possibly optimizes it using dynamic compilation. A standard on how to interact with Java compilers was specified in JSR 199. It is provided by module jdk.compiler , and requires the full Java Development Kit (as opposed to just the Java Runtime Environment), and reside in the javax.tools.* namespace. package org.wikipedia.examples; import java.io.IOException; import java.io.File; import javax.tools.JavaCompiler; import javax.tools.ToolProvider; public class Example { private final String TEST_FILE_NAME = \"Test.java\"; public static void main(String[] args) throws IOException { File sourceFile = new File(TEST_FILE_NAME); if (!sourceFile.exists()) { throw new IllegalArgumentException(String.format(\"File path %s does not exist!\", TIME_FILE_NAME)); } JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); if (compiler == null) { throw new RuntimeException(\"Compiler not available. Are you running on a JRE instead of a JDK?\"); } int result = compiler.run(null, null, null, sourceFile); System.out.printf(\"Compilation result: %s%n\", result == 0 ? \"Success\" : \"Failure\"); } } ==References== ==External links== Sun's OpenJDK javac page Stephan Diehl, \"A Formal Introduction to the Compilation of Java\", Software - Practice and Experience, Vol. 28(3), pages 297-327, March 1998.",
  "categories": [
    "20589555",
    "23468805",
    "23603337",
    "26220375",
    "31682881",
    "90989611"
  ],
  "license": "CC BY-SA 4.0",
  "source_uri": "https://en.wikipedia.org/w/index.php?oldid=1318028280",
  "content_hash": "ca26ab681756a59b59de8d487ffaf68bada1c34a61486417bf46dd85732f8fdc",
  "created_at": 1792310272.4917595,
  "updated_at": 1761047682.0,
  "claims": [],
  "contradictions": [],
  "confidence": 0.6,
  "csl": {
    "id": "java-compiler-357970-ca26ab681756a59b",
    "type": "webpage",
    "title": "Java compiler",
    "author": [
      {
        "family": "Anticloud FZ LLE",
        "literal": "Anticloud FZ LLE"
      }
    ],
    "container-title": "encyclopegia.org",
    "publisher": "Anticloud FZ LLE",
    "publisher-place": "Dubai, United Arab Emirates",
    "URL": "https://encyclopegia.org/a/java-compiler",
    "issued": {
      "date-parts": [
        [
          2026,
          10,
          18
        ]
      ]
    },
    "accessed": {
      "date-parts": [
        [
          2026,
          11,
          12
        ]
      ]
    },
    "license": "CC BY-SA 4.0",
    "DOI": "eo1:java-compiler-357970-ca26ab681756a59b",
    "isBasedOn": "https://en.wikipedia.org/w/index.php?oldid=1318028280",
    "note": "Immutable snapshot java-compiler-357970-ca26ab681756a59b, content root ca26ab681756a59b…"
  }
}