Anleitung

Publii startet nicht unter Windows 10: So habe ich den JavaScript-Fehler behoben

Nach einer frischen Installation von Windows 10 wollte ich Publii wieder einrichten. Eigentlich keine große Sache: Programm herunterladen, installieren und starten. Zumindest war das der Plan.

Statt der gewohnten Publii-Oberfläche erschien allerdings eine Fehlermeldung mit dem Hinweis auf einen JavaScript-Fehler. Auch eine erneute Installation brachte keine Verbesserung.

Die Lösung war am Ende überraschend einfach: Es fehlte die Microsoft Visual C++ Runtime. Nach der Installation der benötigten Laufzeitbibliotheken startete Publii wieder ganz normal.

Falls jemand vor demselben Problem steht, möchte ich hier kurz erklären, was dahintersteckt und wie sich der Fehler beheben lässt.

Publii zeigt beim Start einen JavaScript-Fehler

Das Problem trat unmittelbar nach einer vollständigen Neuinstallation von Windows 10 auf.

Verwendet wurde Windows 10 Pro in der 64-Bit-Version mit dem Versionsstand 22H2 und der Betriebssystembuild 19045.6456.

Auch Publii wurde frisch installiert. Alte Programmdateien oder eine bestehende Installation waren damit zunächst nicht als Ursache erkennbar.

Beim Start erschien folgende Meldung:

A JavaScript error occurred in the main process

Uncaught Exception:
Error: Cannot find native binding.

npm has a bug related to optional dependencies.

Das Programm öffnete sich anschließend nicht.

Besonders der Hinweis auf JavaScript und npm kann zunächst etwas verwirrend sein. Schließlich möchte man Publii einfach nur starten und nicht selbst an Node.js-Paketen herumbasteln.

Was bedeutet „Cannot find native binding“?

Publii ist eine Desktop-Anwendung, die auf Electron und damit unter anderem auf Node.js basiert.

Electron ermöglicht es, Desktop-Programme mit Webtechnologien wie JavaScript zu entwickeln.

Allerdings bestehen solche Anwendungen nicht ausschließlich aus JavaScript. Für bestimmte Funktionen kommen auch native Module zum Einsatz, die direkt für das jeweilige Betriebssystem kompiliert wurden.

Und genau hier kann das Problem entstehen.

Die Fehlermeldung Cannot find native binding bedeutet vereinfacht, dass eine benötigte native Komponente nicht ordnungsgemäß geladen werden konnte.

Dafür kommen unterschiedliche Ursachen infrage. Beispielsweise eine fehlende Datei, eine beschädigte Installation oder eine nicht vorhandene Laufzeitbibliothek.

In meinem Fall lag das Problem offenbar an einer fehlenden Microsoft Visual C++ Runtime.

Diese stellt Bibliotheken bereit, die viele unter Windows entwickelte Programme benötigen.

Fehlen solche Dateien, können Anwendungen unter Umständen nicht starten, obwohl sie selbst vollständig installiert wurden.

Die Lösung: Microsoft Visual C++ Redistributable installieren

Nachdem eine erneute Installation von Publii keine Verbesserung gebracht hatte, half schließlich die Installation des Microsoft Visual C++ Redistributable für 64-Bit-Systeme.

Die Vorgehensweise ist unkompliziert:

  1. Das aktuelle Microsoft Visual C++ Redistributable für x64 von Microsoft herunterladen.

  2. Die heruntergeladene Datei vc_redist.x64.exe ausführen.

  3. Die Installation der Laufzeitbibliotheken abschließen.

  4. Publii anschließend erneut starten.

Bei Bedarf kann ein Neustart von Windows sinnvoll sein.

In meinem Fall war damit das Problem behoben. Publii öffnete sich wieder ohne JavaScript-Fehlermeldung.

Weder eine erneute Windows-Installation noch irgendwelche komplizierten Eingriffe in das System waren notwendig.

Die Laufzeitbibliotheken werden übrigens auch von vielen anderen Windows-Programmen verwendet. Es handelt sich also nicht um eine spezielle Erweiterung für Publii.

Warum eine Neuinstallation von Publii nicht geholfen hat

Bevor ich die eigentliche Lösung gefunden hatte, gab es natürlich auch andere Versuche.

Unter anderem wurden die zugehörigen AppData-Verzeichnisse von Publii gelöscht und die Anwendung erneut installiert.

Beides brachte keine Veränderung.

Rückblickend ist das nachvollziehbar.

Wenn das Problem durch eine fehlende Windows-Laufzeitbibliothek verursacht wird, hilft es normalerweise nicht, einfach nur dieselbe Anwendung erneut zu installieren.

Die benötigte Systemkomponente fehlt anschließend schließlich weiterhin.

Das ist auch der Grund, warum ich bei solchen Fehlermeldungen inzwischen nicht mehr sofort damit anfangen würde, sämtliche Programmeinstellungen zu löschen.

Gerade bei Publii sollte man mit AppData-Verzeichnissen vorsichtig umgehen. Dort können wichtige Anwendungsdaten liegen. Vor dem Löschen sollte man deshalb unbedingt prüfen, was enthalten ist, und gegebenenfalls eine Sicherung anlegen.

Muss man wegen des Fehlers Java installieren?

Nein. Jedenfalls nicht wegen dieser Fehlermeldung.

Java und JavaScript sind zwei unterschiedliche Programmiersprachen, auch wenn ihre Namen ähnlich klingen.

Publii benötigt keine zusätzliche Java-Laufzeitumgebung, nur weil beim Start ein JavaScript-Fehler erscheint.

Auch der Hinweis auf npm bedeutet nicht automatisch, dass man Node.js oder npm selbst installieren muss.

npm ist der Paketmanager aus dem Node.js-Umfeld und wird vor allem während der Entwicklung von Anwendungen verwendet.

Bei einer fertig ausgelieferten Desktop-Anwendung wie Publii sollten die benötigten Bestandteile normalerweise bereits enthalten sein.

Fehlt dagegen eine Windows-Systembibliothek, kann die Installation der passenden Visual-C++-Laufzeit genau die richtige Lösung sein.

Hilft dieser Trick auch bei anderen Programmen?

Durchaus möglich.

Gerade Anwendungen, die auf Electron oder nativen Node.js-Erweiterungen basieren, können unter Windows ähnliche Startprobleme verursachen.

Dabei muss nicht unbedingt exakt dieselbe Fehlermeldung erscheinen.

Manchmal startet ein Programm einfach nicht. In anderen Fällen wird auf eine fehlende DLL-Datei oder eine nicht ladbare native Komponente hingewiesen.

Die Visual C++ Runtime ist deshalb ein sinnvoller Punkt, den man bei der Fehlersuche überprüfen kann.

Allerdings sollte man daraus keine allgemeingültige Lösung machen.

Nicht jeder Fehler mit „Cannot find native binding“ wird durch die Installation von Visual C++ behoben. Auch fehlende Programmmodule, beschädigte Dateien oder Architekturprobleme können die Ursache sein.

In diesem konkreten Fall hat die Installation jedoch funktioniert.

Fazit: Manchmal fehlt nur eine kleine Windows-Komponente

Eigentlich hatte ich nach der Neuinstallation von Windows 10 nicht damit gerechnet, dass ausgerechnet Publii Probleme machen würde.

Die Fehlermeldung klang zunächst komplizierter, als die tatsächliche Lösung am Ende war.

Eine beschädigte Publii-Installation oder ein grundsätzliches Problem mit Windows lag offenbar nicht vor. Es fehlte lediglich eine Laufzeitkomponente, die für das Laden eines nativen Moduls benötigt wurde.

Nach der Installation des Microsoft Visual C++ Redistributable (x64) funktionierte Publii wieder einwandfrei.

Mein Fazit: Wenn Publii unter Windows mit einem JavaScript-Fehler und dem Hinweis Cannot find native binding nicht startet, lohnt es sich, zunächst die Visual-C++-Laufzeitbibliotheken zu überprüfen.

Das ist schnell erledigt und kann einem einiges an unnötiger Fehlersuche ersparen.

Und vor allem muss man nicht gleich Windows neu installieren, nur weil eine Anwendung beim Start mit einer kryptischen Fehlermeldung um sich wirft.

Quellen und Downloads

Microsoft – Aktuelles Visual C++ Redistributable für Windows (x64)

https://aka.ms/vc14/vc_redist.x64.exe

Microsoft Learn – Offizielle Informationen zu den Visual-C++-Laufzeitbibliotheken

https://learn.microsoft.com/de-de/cpp/windows/latest-supported-vc-redist

Publii – Offizielle Website und Downloads

https://getpublii.com/