What is MIME type "application/x-java-vm"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

application/x-java-vm labels files that contain Java bytecode meant for execution by the Java Virtual Machine. These files are compiled from Java source code and carry instructions that the JVM reads and runs.
Although not an official MIME standard, it helps systems and web servers identify these files correctly.

The file associated with this MIME type is the compiled Java file, represented as CLASS. This type of file holds the bytecode instructions for the Java runtime environment.
For extra details, see resources on Java MIME handling at Java Official or explore file types at FileXT.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: application/x-java-vm    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="application/x-java-vm">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'application/x-java-vm');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

What kind of file uses the application/x-java-vm MIME type?

This MIME type is specifically used for compiled Java bytecode files, which typically have the .class file extension. These files contain machine-readable instructions generated from Java source code that are meant to be executed by the Java Virtual Machine (JVM).

How do I configure Apache to serve .class files correctly?

To ensure Apache serves Java class files with the correct MIME type, add the following line to your .htaccess file or main configuration: AddType application/x-java-vm .class. Without this, the server might incorrectly send them as text/plain or application/octet-stream.

Can modern web browsers execute application/x-java-vm files?

No, modern browsers (like Chrome, Firefox, and Edge) have removed support for NPAPI plugins and Java Applets. Consequently, they cannot execute application/x-java-vm files directly; these files must be downloaded and run locally using a standalone Java Runtime Environment (JRE).

What is the difference between application/x-java-vm and application/java-archive?

The application/x-java-vm type represents a single compiled class file, while application/java-archive represents a JAR file. A JAR file is a compressed archive that bundles multiple .class files and metadata together for easier distribution.

Is it safe to run a file labeled application/x-java-vm?

You should treat these files with caution, similar to how you treat .exe files. Because application/x-java-vm files contain executable code, running a file from an untrusted source can pose a significant security risk to your system.

Why does this MIME type start with 'x-'?

The x- prefix indicates that the MIME type is a non-standard extension or was experimental when defined. While it is not an official IANA standard type (unlike application/json), application/x-java-vm became the de facto standard for identifying Java class files on the web.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.