Hva er VM-filformatet?
.vm-filer inneholder Apache Velocity-maler - tekstmaler på tjenersiden skrevet i Velocity Template Language (VTL). Velocity er en Java-basert malmotor vedlikeholdt av Apache Software Foundation; .vm er dens standard filendelse for maler.
En Velocity-mal blander statisk utdatainnhold (HTML, XML, SQL eller ren tekst) med VTL-direktiver og variabelreferanser som løses ved kjøretid mot et Java-kontekstobjekt. Sentrale VTL-konstruksjoner inkluderer:
$variableeller${variable}- skriver ut en verdi fra konteksten,#set( $x = 'verdi' )- tildeler en variabel,#if/#else/#end- betingede utdatablokker,#foreach( $item in $list )- iterasjon,#macro- definerer gjenbrukbare malfragmenter,#parse/#include- bygger inn andre.vm-filer.
Velocity brukes i eldre Java-webapplikasjoner, kodegeneratorer, systemer for e-postmaler og Apache Maven-arketyper. Motoren krever Java 8 eller nyere (Velocity 2.x); den siste 1.x-versjonen var Velocity 1.7 i 2010.
Merk: .vm-endelsen brukes også av VMware for minne- og konfigurasjonsfiler for virtuelle maskiner - en helt urelatert og mer vanlig bruk. Når en .vm-fil finnes på et system med VMware installert, tilhører den nesten helt sikkert VMware, ikke Velocity.
Moderne alternativer til Velocity inkluderer FreeMarker (Apache), Thymeleaf og Mustache.
Sikkerhet og trygghet
RISIKO: LOWRen tekstfil; ikke kjørbar i seg selv. I en Java-applikasjon kan Velocity-maler kalle vilkårlige Java-metoder som er tilgjengelige i konteksten, så ondsinnede .vm-filer i en serverapplikasjon kan forårsake server-side injection hvis upålitelig inndata når motoren. Ingen risiko for sluttbrukere som åpner i et tekstredigeringsprogram.
Formatdetaljer
i et nøtteskall- VMware Virtual Machine Configuration - VMware Workstation og VMware Player bruker .vm som en av flere filendelser for komponenter i virtuelle maskiner; urelatert til maler.
- ScummVM Save Game - ScummVM-emulatoren for eventyrspill bruker .vm for lagrede spillfiler i enkelte spillmotorer.
Programmer som åpner VM-filer
Tekniske detaljer
dyp spesifikasjon| Utvikler | Apache Software Foundation |
| Krav til kjøretidsmiljø | Java 8 eller nyere (Velocity Engine 2.x); siste 1.x-versjon var Velocity 1.7 i 2010 |
| Filtype | Ren tekst Velocity Template Language (VTL)-mal for tjenersiden |
| Koding | UTF-8 som standard; konfigurerbar via `input.encoding` i `velocity.properties` |
| Typisk filstørrelse | 1 KB - 200 KB |
| Variabelsyntaks | `$variable` eller `${variable}` - verdier hentet fra et Java Velocity-kontekstobjekt ved kjøretid |
| Direktiv-prefiks | `#` - innebygde direktiver: `#set`, `#if`/`#else`/`#end`, `#foreach`, `#macro`, `#parse`, `#include` |
| Mal-inkludering | `#parse` bygger inn og evaluerer en annen `.vm`-fil; `#include` setter den inn som rå ubehandlet tekst |
| Vanlige bruksområder | Visninger i Java-webapplikasjoner, kodegeneratorer, e-postmaler, Apache Maven-prosjektarketyper |
| Utvidelseskonflikt | `.vm` brukes også av VMware for minne- og konfigurasjonsfiler for virtuelle maskiner - urelatert og mer utbredt |
| Merkbare alternativer | Apache FreeMarker (.ftl), Thymeleaf (.html-maler), Mustache (.mustache) |
| Utdataformater | Ethvert tekstbasert format: HTML, XML, SQL, ren tekst eller kildekode - Velocity er uavhengig av utdataformat |
| Utgitt | 1999 (Velocity originally from Apache Jakarta project) |
| Siste versjon | Apache Velocity Engine 2.4 (2023) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | velocity.apache.org |
VM-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om VM-filer.