Secrets im Java-Projekt

Zugriff auf API-Keys im Java-Code – mit .env und der Bibliothek dotenv-java

Ziele

  • Du lernst, wie man .env-Dateien verwendet.
  • Du verwendest dotenv-java für einfache Integration in Java-Projekte.
  • Du stellst sicher, dass deine API-Keys nicht im Code landen.
⏱️ Geschätzte Lesezeit: 10 Minuten

Geheimnisse in einem Java-Projekt schützen

Die nachfolgende Anleitung soll dir helfen, Geheimnisse zu schützen, welche dein Projekt benötigt (z.B. Passwort für Datenbank-Zugriff).

Schritt 1: .env-Datei erstellen

Im Projektverzeichnis (z. B. labs/) eine Datei .env mit folgendem Inhalt anlegen:

1
GOOGLE_API_KEY=dein_api_key

Diese Datei enthält vertrauliche Informationen und darf nicht ins Git-Repository eingecheckt werden.

Trage sie deshalb in .gitignore ein:

1
.env
it-ninja warning
Vergewissere dich, dass die .env-Datei nicht ins Git-Repository gelangt – bevor du deine Geheimnisse einträgst!

Schritt 2: Maven-Dependency hinzufügen

Passe das Maven-Konfigurationsfile (pom.xml) an:

1
2
3
4
5
6

<dependency>
<groupId>io.github.cdimascio</groupId>
<artifactId>dotenv-java</artifactId>
<version>3.0.0</version>
</dependency>

Schritt 3: Zugriff im Java-Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import io.github.cdimascio.dotenv.Dotenv;
import java.util.MissingResourceException;

Dotenv dotenv = Dotenv.configure()
    .ignoreIfMissing()
    .load();

String apiKey = dotenv.get("GOOGLE_API_KEY");
if (apiKey == null) {
    throw new MissingResourceException(
        "API key not set. Please check your .env file or environment variables.",
        "GOOGLE_API_KEY",
        null
    );
}

dotenv-java prüft zuerst System.getenv(...), dann .env – ideal für lokale Entwicklung, Testing und Verteilung.

it-ninja info
Wie die .env-Datei beim Deployment erstellt und verteilt wird, gehört zum Thema Configuration Management – das behandeln wir hier nicht weiter.

Schritt 4: Vorlage für andere bereitstellen

Lege eine .env.template oder .env.example mit folgendem Inhalt ins Repository:

1
2
3
4
# This file contains the required environment variables! To use it, rename it to '.env'.
# Always make sure that the '.env' file containing sensitive information is never committed to a Git repository!

GOOGLE_API_KEY=HIER_EINTRAGEN

Diese Datei darf eingecheckt werden – sie enthält keine echten Schlüssel, sondern dient als Vorlage.


Vorteile von dotenv-java

VorteilBeschreibung
IDE-unabhängigFunktioniert mit IntelliJ, VS Code, CLI, Docker usw.
Deployment-tauglich.env wird zur Laufzeit geladen – kein Startskript nötig
Testing-freundlichIdeal für Integrationstests mit Umgebungsvariablen
Einfach integrierbarNur eine kleine, leichtgewichtige Dependency
ZukunftssicherStandardlösung für reale Java-Projekte
it-ninja info

Natürlich ist dotenv-java nicht die einzige Möglichkeit, um Konfiguration und Code voneinander zu trennen. In anderen Projekten wirst du vielleicht auf alternative Lösungen stossen.

Wichtig ist dabei immer:
Geheimnisse wie API-Schlüssel und Passwörter dürfen niemals im Quellcode oder in öffentlich zugänglichen Repositories gespeichert werden.

it-ninja info

In CI/CD-Umgebungen (z. B. GitHub Actions, GitLab CI) ist die Verwendung einer .env-Datei nur im Rahmen von Tests oder lokalen Simulationen sinnvoll. Beim eigentlichen Build-Prozess hat sie keine Wirkung, da dort keine .env geladen wird – es sei denn, du startest deine Anwendung oder Tests explizit.

Für produktive CI/CD-Prozesse solltest du die benötigten Werte als echte Umgebungsvariablen im jeweiligen CI-System hinterlegen.


Optional: Einstieg mit IntelliJ Plugin „Env File“

Wenn du keine zusätzliche Bibliothek verwenden willst und nur lokal mit IntelliJ arbeitest, kannst du das Plugin Env File nutzen.

Installation

  1. IntelliJ IDEA öffnen → SettingsPlugins
  2. Nach Env File (von Aeris) suchen und installieren
  3. IntelliJ neu starten

Run-Konfiguration anpassen

  1. Run-Konfiguration öffnen (Edit Configurations…)
  2. Abschnitt EnvFile aktivieren: ✅ „Enable EnvFile“
  3. Mit ➕ deine .env-Datei hinzufügen

Zugriff im Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import java.util.MissingResourceException;

String apiKey = System.getenv("GOOGLE_API_KEY");

if (apiKey == null) {
    throw new MissingResourceException(
        "API key not set. Please check your .env file or environment variables.",
        "GOOGLE_API_KEY",
        null
    );
}
it-ninja info
Das Plugin funktioniert nur in IntelliJ und ist nicht geeignet für Deployment oder CI/CD.
Verwende es nur zum Einstieg oder für Tests – produktiv empfehlen wir dotenv-java.

Empfehlung für it-ninjas-Projekte

SzenarioEmpfehlung
Lokale Entwicklung (kurzfristig).env + Plugin (optional)
Verteilung, Produktivbetrieb.env mit dotenv-java

Verwende dotenv-java, wenn dein Projekt wachsen oder weitergegeben werden soll.
So stellst du sicher, dass deine Zugangsdaten nicht im Code landen – und dein Projekt überall funktioniert.


Zuletzt geändert July 1, 2025: Rework tools module (6915eedfe)