Was ist das VM-Dateiformat?
.vm-Dateien enthalten Apache Velocity Templates - serverseitige Textvorlagen, die in der Velocity Template Language (VTL) geschrieben sind. Velocity ist eine Java-basierte Templating-Engine, die von der Apache Software Foundation gepflegt wird; .vm ist die standardmäßige Dateiendung für Vorlagen.
Ein Velocity Template mischt statische Ausgabeinhalte (HTML, XML, SQL oder Klartext) mit VTL-Direktiven und Variablenreferenzen, die zur Laufzeit gegen ein Java-Kontextobjekt aufgelöst werden. Zu den wichtigsten VTL-Konstrukten gehören:
$variableoder${variable}- gibt einen Wert aus dem Kontext aus,#set( $x = 'value' )- weist einer Variable einen Wert zu,#if/#else/#end- bedingte Ausgabeblöcke,#foreach( $item in $list )- Iteration,#macro- definiert wiederverwendbare Vorlagenfragmente,#parse/#include- bettet andere.vm-Dateien ein.
Velocity wird in älteren Java-Webanwendungen, Codegeneratoren, E-Mail-Vorlagensystemen und Apache Maven Archetypes verwendet. Die Engine erfordert Java 8 oder neuer (Velocity 2.x); die letzte 1.x-Version war Velocity 1.7 im Jahr 2010.
Hinweis: Die Endung .vm wird auch von VMware für Arbeitsspeicher- und Konfigurationsdateien virtueller Maschinen verwendet - eine völlig unabhängige und häufiger anzutreffende Verwendung. Wenn eine .vm-Datei auf einem System mit installiertem VMware gefunden wird, gehört sie fast sicher zu VMware und nicht zu Velocity.
Moderne Alternativen zu Velocity sind FreeMarker (Apache), Thymeleaf und Mustache.
Sicherheit
RISIKO: LOWKlartextdatei; nicht eigenständig ausführbar. In einer Java-Anwendung können Velocity Templates beliebige Java-Methoden aufrufen, die im Kontext verfügbar sind. Daher könnten bösartige .vm-Dateien in einer Serveranwendung Server-Side Injection verursachen, wenn nicht vertrauenswürdige Eingaben die Engine erreichen. Kein Risiko für Endbenutzer beim Öffnen in einem Texteditor.
Formatdetails
kurz gefasst- VMware Virtual Machine Configuration - VMware Workstation und VMware Player verwenden .vm als eine von mehreren Dateiendungen für Komponenten virtueller Maschinen; steht nicht im Zusammenhang mit Templating.
- ScummVM Save Game - Der Adventure-Game-Emulator ScummVM verwendet .vm für Spielstand-Dateien in einigen Game-Engines.
Programme zum Öffnen von VM-Dateien
Technische Details
technische Spezifikation| Entwickler | Apache Software Foundation |
| Laufzeitanforderung | Java 8 oder neuer (Velocity Engine 2.x); letzte 1.x-Version war Velocity 1.7 im Jahr 2010 |
| Dateityp | Klartext-basierte serverseitige Velocity Template Language (VTL) Vorlage |
| Kodierung | Standardmäßig UTF-8; konfigurierbar über `input.encoding` in `velocity.properties` |
| Typische Dateigröße | 1 KB - 200 KB |
| Variablensyntax | `$variable` oder `${variable}` - Werte werden zur Laufzeit aus einem Java Velocity-Kontextobjekt aufgelöst |
| Direktiven-Präfix | `#` - integrierte Direktiven: `#set`, `#if`/`#else`/`#end`, `#foreach`, `#macro`, `#parse`, `#include` |
| Template-Einbindung | `#parse` bettet eine andere `.vm`-Datei ein und wertet sie aus; `#include` fügt sie als unverarbeiteten Rohtext ein |
| Häufige Anwendungsfälle | Java-Webanwendungs-Views, Codegeneratoren, E-Mail-Vorlagen, Apache Maven Projekt-Archetypes |
| Erweiterungskonflikt | `.vm` wird auch von VMware für Arbeitsspeicher- und Konfigurationsdateien virtueller Maschinen verwendet - unabhängig und verbreiteter |
| Namhafte Alternativen | Apache FreeMarker (.ftl), Thymeleaf (.html Templates), Mustache (.mustache) |
| Ausgabeformate | Jedes textbasierte Format: HTML, XML, SQL, Klartext oder Quellcode - Velocity ist unabhängig vom Ausgabeformat |
| Veröffentlicht | 1999 (Velocity originally from Apache Jakarta project) |
| Neueste Version | Apache Velocity Engine 2.4 (2023) |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | velocity.apache.org |
VM-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu VM-Dateien.