Wat is het JAVA-bestandsformaat?
Een .java-bestand is een broncodebestand in platte tekst geschreven in de programmeertaal Java. Java is een objectgeoriënteerde programmeertaal die is opgebouwd rond de concepten van klassen en objecten. .java-bronbestanden worden door de javac-compiler gecompileerd tot .class bytecode-bestanden; om het resulterende programma uit te voeren, is een Java Virtual Machine (JVM) vereist. Java is ook de primaire taal die wordt gebruikt voor het ontwikkelen van Android-applicaties.
Objectgeoriënteerd programmeren
Java werd sterk beïnvloed door C++, hoewel het vanaf de basis is ontworpen als een platformonafhankelijke taal. De oorspronkelijke ontwerpers accepteerden enkele compromissen in de ruwe uitvoeringssnelheid om „write once, run anywhere” portabiliteit te bereiken; moderne JIT (just-in-time) compilatie heeft dat gat inmiddels grotendeels gedicht. .java-bestanden zijn bijna volledig opgebouwd uit declaraties van klassen, interfaces, enums en records, met slechts een kleine set primitieve typen (zoals int, boolean en double) die buiten het objectmodel vallen. Volgens afspraak bevat elk .java-bestand precies één publiek type, en de bestandsnaam moet overeenkomen met de naam van dat type - App.java moet bijvoorbeeld public class App bevatten.
Voor de eenvoud is een klasse een generalisatie - een sjabloon - van een object:
- *Klasse:* mens - *object:* Smith John
- *Klasse:* vliegtuig - *object:* Boeing 737
Elke klasse definieert de eigenschappen die een object kan hebben (een auto kan bijvoorbeeld eigenschappen hebben zoals kleur, aantal zitplaatsen, enz.) en de methoden die het kan uitvoeren - dat wil zeggen, de bewerkingen of acties die het kan verrichten (een auto-object kan bijvoorbeeld versnellen, remmen en toeteren). Klassen kunnen overerven van andere klassen of andere klassen samenstellen, wat hergebruik van code en modulair ontwerp mogelijk maakt.
Het compileren van een .java-bestand met javac produceert een .class-bestand; meerdere .class-bestanden worden gewoonlijk verpakt in een JAR-archief voor distributie. Sinds Java 11 kan een .java-programma dat uit één bestand bestaat ook direct worden gestart met het java-commando zonder een expliciete compilatiestap.
Beveiliging & veiligheid
RISICO: LOWEen .java-bestand is passieve brontekst - het openen of lezen ervan kan je computer niet beschadigen. Het risico ontstaat pas als je het COMPILEERT en UITVOERT: zoals elk programma dat je bouwt van de code van iemand anders, wordt het uitgevoerd met jouw machtigingen en kan het alles doen wat de code zegt, dus controleer of vertrouw de bron voordat je 'javac'/'java' uitvoert. Er is geen automatische uitvoering door het bestand alleen in een editor te bekijken.
Formaatdetails
in een notendopProgramma's die JAVA-bestanden openen
Technische details
diepe specificaties| MIME-type | text/x-java-source (ook geaccepteerd als text/x-java) |
| Tekstcodering | UTF-8; de standaard voor javac sinds Java 18 (2022); oudere toolchains vereisen een expliciete -encoding vlag |
| Bestandssignatuur | Geen - platte tekst zonder magic bytes; opent doorgaans met een package-declaratie, import-statements of een klassedefinitie |
| Compilatie-output | javac compileert elk .java-bestand naar een of meer .class bytecode-bestanden, één per type dat in de broncode is gedefinieerd |
| Eén publiek type per bestand | De naam van een publiek type moet exact overeenkomen met de bestandsnaam - bijv. App.java moet public class App declareren; het schenden hiervan is een compileerfout |
| Bestandsstructuur volgorde | Optionele package-declaratie → import-statements → declaraties van klassen, interfaces, enums of records met velden en methoden |
| Typische bestandsgrootte | 1 KB - 100 KB; een kleine utility-klasse kan minder dan 1 KB zijn, een grote klasse overschrijdt zelden de 100 KB |
| Platformondersteuning | Cross-platform: Windows, macOS, Linux en elk besturingssysteem met een geïnstalleerde JDK; dezelfde broncode compileert op alle platforms |
| Taalversie-mechanisme | Het syntaxisniveau wordt niet in het bestand zelf opgeslagen; het wordt tijdens het compileren beheerd via javac --release N (bijv. --release 21) |
| Primitieve typen | Acht ingebouwde primitieven - int, long, double, float, boolean, char, byte, short - bestaan naast objecttypen |
| Moderne syntaxis-toevoegingen | Records (Java 16), sealed classes (Java 17), pattern matching voor switch (Java 21), naamloze patronen en variabelen (Java 22) |
| Directe lancering (Java 11+) | Een .java-bestand met één bronbestand kan worden uitgevoerd met java FileName.java zonder een voorafgaande javac-compilatiestap |
| Deployment-verpakking | Meerdere gecompileerde .class-bestanden worden gebundeld in een .jar-archief voor distributie en uitvoering op elke JVM |
| Taalbeheer | Java-taalspecificatie onderhouden door Oracle; open-source implementatie via OpenJDK onder het Java Community Process (JCP) |
| Veelgebruikte ontwikkeltools | IntelliJ IDEA, Eclipse IDE en Visual Studio Code (met het Java Extension Pack) bieden volledige taalondersteuning voor .java-bestanden |
| Uitgebracht | 1995 (Java 1.0, Sun Microsystems) |
| Laatste versie | Tracks the Java language version; Java 24 (2025) is current at time of writing |
| Open standaard | Ja · royaltyvrij |
| Specificatie | docs.oracle.com |
JAVA conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over JAVA-bestanden.