.VM

VM File

Apache Velocity Template
Ask a question
QUICK ANSWER

A .vm file is an Apache Velocity template - a plain-text file that combines static content (HTML, XML, SQL, etc.) with VTL directives processed by a Java application at runtime. Open it in any code editor such as VS Code, IntelliJ IDEA, or Notepad++. The file cannot run on its own; it needs a Java application with Apache Velocity Engine to produce output.

Developer: Apache Software Foundation Category: Developer Files Open standard MIME: text/plain
OPENS ON Windows macOS Linux
Related: .DO · .MD · .HEX · .XSD

On this page

19k+ extensions indexed
Last reviewed Jul 13, 2026

Not sure what your file is?

Drop any file into our identifier - we read just the first bytes to name the format.

Identify a file

What is the VM file format?

.vm files contain Apache Velocity templates - server-side text templates written in the Velocity Template Language (VTL). Velocity is a Java-based templating engine maintained by the Apache Software Foundation; .vm is its default template file extension.

A Velocity template mixes static output content (HTML, XML, SQL, or plain text) with VTL directives and variable references resolved at runtime against a Java context object. Core VTL constructs include:

  • $variable or ${variable} - output a value from the context,
  • #set( $x = 'value' ) - assign a variable,
  • #if / #else / #end - conditional output blocks,
  • #foreach( $item in $list ) - iteration,
  • #macro - define reusable template fragments,
  • #parse / #include - embed other .vm files.

Velocity is used in legacy Java web applications, code generators, email templating systems, and Apache Maven archetypes. The engine requires Java 8 or later (Velocity 2.x); the last 1.x release was Velocity 1.7 in 2010.

Note: the .vm extension is also used by VMware for virtual machine memory and configuration files - a completely unrelated and more commonly encountered use. When a .vm file is found on a system with VMware installed, it almost certainly belongs to VMware, not Velocity.

Modern alternatives to Velocity include FreeMarker (Apache), Thymeleaf, and Mustache.

Security & safety

RISK: LOW

Plain text file; no executable on its own. In a Java application, Velocity templates can call arbitrary Java methods available in the context, so malicious .vm files in a server application could cause server-side injection if untrusted input reaches the engine. Not a risk for end users opening in a text editor.

Format details

in a nutshell
FULL NAMEApache Velocity Templateaka Velocity Template Language file, VTL template
DEVELOPERApache Software Foundationsince 1999 (Velocity originally from Apache Jakarta project)
MIME TYPEtext/plain
TYPEtext template file (server-side templating)
STANDARDOpen · royalty-free
This extension is also used by…
  • VMware Virtual Machine Configuration - VMware Workstation and VMware Player use .vm as one of several virtual machine component file extensions; unrelated to templating.
  • ScummVM Save Game - ScummVM adventure game emulator uses .vm for save state files in some game engines.

Programs that open VM files

Windows4 apps
IntelliJ IDEA Freemium Built-in Velocity template support with syntax highlighting and code completion.
Notepad Open-source Open as plain text; no built-in VTL highlighting but user-defined languages available.
Visual Studio Code Free Open directly; install 'Velocity' extension (marketplace) for syntax highlighting.
Apache Velocity (runtime) Open-source Not an interactive editor - the Java library/engine that renders .vm templates in an application.
macOS2 apps
IntelliJ IDEA Freemium Native Velocity template support.
Visual Studio Code Free Open directly; add Velocity extension for syntax support.
Linux2 apps
Visual Studio Code Free Open directly; Velocity extension available.
Apache Velocity (runtime) Open-source Render templates from a Java application using the VelocityEngine API.

Technical details

deep spec
DeveloperApache Software Foundation
Runtime requirementJava 8 or later (Velocity Engine 2.x); last 1.x release was Velocity 1.7 in 2010
File typePlain-text server-side Velocity Template Language (VTL) template
EncodingUTF-8 by default; configurable via `input.encoding` in `velocity.properties`
Typical file size1 KB - 200 KB
Variable syntax`$variable` or `${variable}` - values resolved from a Java Velocity context object at runtime
Directive prefix`#` - built-in directives: `#set`, `#if`/`#else`/`#end`, `#foreach`, `#macro`, `#parse`, `#include`
Template inclusion`#parse` embeds and evaluates another `.vm` file; `#include` inserts it as raw unprocessed text
Common use casesJava web application views, code generators, email templates, Apache Maven project archetypes
Extension conflict`.vm` is also used by VMware for virtual machine memory and configuration files - unrelated and more prevalent
Notable alternativesApache FreeMarker (.ftl), Thymeleaf (.html templates), Mustache (.mustache)
Output formatsAny text-based format: HTML, XML, SQL, plain text, or source code - Velocity is output-format-agnostic
Released1999 (Velocity originally from Apache Jakarta project)
Latest versionApache Velocity Engine 2.4 (2023)
Open standardYes · royalty-free
Specificationvelocity.apache.org

VM conversions

Community Q&A

asked by users
Ask a quick question
Get help from people who work with VM files. Be specific - include your system and software version.
No account needed · answers usually within a day

No questions yet - be the first to ask about VM files.

Frequently asked questions

What opens a .vm file?
Any text editor (VS Code, Notepad++, IntelliJ IDEA). To run it, you need a Java application using Apache Velocity Engine - the file cannot execute standalone.
Why does my .vm file look like HTML with # and $ symbols?
The # lines are Velocity Template Language (VTL) directives and $variable references. They are replaced with real values when the template is rendered by a Java application.
Is the .vm extension the same as a VMware file?
No - VMware also uses .vm for virtual machine files, but those are binary and unrelated to Velocity templates.
What is the difference between Velocity (.vm) and FreeMarker (.ftl)?
Both are Java template engines; FreeMarker has a richer directive set and is more actively developed today. Velocity is simpler and still widely used in Maven and legacy projects.

References

1Apache Velocity Engine - User Guidevelocity.apache.org
2Apache Velocity Engine - VTL Referencevelocity.apache.org

Keep exploring

across the database

Top extensions this week

1.AQQAQQ Instant Messenger File
2.BINCD/DVD Disc Image (BIN/CUE)
3.MDMarkdown Document
4.PARTPartial Download File
5.RPMSGRestricted Permission Message
6.CRDOWNLOADChrome Partial Download File
7.NOMEDIAAndroid No-Media Marker File
8.PRDXSoftMaker Presentations Document
9.PRO6XProPresenter 6 Bundle File
10.SWFSmall Web Format (Shockwave Flash)

Related extensions

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Free file tools

An in-browser file identifier and image converter - everything runs on your device.

Open the toolbox

Browse file extensions A-Z