F4, Java und die Korruption (Nachtrag 4)

Kurz das Wich­tigs­te: Die Feh­ler­mel­dung „asser­ti­on fai­led“ von Micro­soft Visu­al C++ Run­time Libra­ry (Line 132 in t2kstrm.c) taucht auf, wenn ein Teil der Java-Run­time-Engi­ne (JRE) bei bestimm­ten in Java geschrie­be­nen Pro­gram­men – zum Bei­spiel der Tran­skrip­ti­ons­soft­ware F4, Ver­si­on 3, unter Win­dows XP, aber auch bei ande­ren Pro­gram­men – im Win­dows-Schrif­ten­ord­ner auf Schrift­ar­ten im For­mat TTF stößt, die „kor­rupt“ sind (z.B. ungül­ti­ge Ver­wei­se im Datei­auf­bau, nicht ganz stan­dard­kon­form). Um die­se Java-Pro­gram­me trotz­dem zum Lau­fen zu brin­gen, ist es not­wen­dig, die­se Schrift­ar­ten zu löschen – was wie­der­um nicht so ganz ein­fach ist, wie ich selbst erfah­ren durf­te. Was ich gemacht habe, was pas­siert ist, und wie ich mein Sys­tem wie­der zum Lau­fen gekriegt habe, steht unten. Wer es nach­ma­chen möch­te: auf eige­ne Gefahr.

* * *

Zum Tran­skri­bie­ren nut­ze ich die De-Fac­to-Stan­dard­soft­ware F4, die es als Free­ware gibt. In der Ver­si­on 3 hat sie eini­ge neue Fea­tures bekom­men, und auf mei­nem Arbeits­platz­rech­ner eben­so wie auf mei­nem Net­book ließ sie sich auch pro­blem­los instal­lie­ren. Auf mei­nem Rech­ner zuhau­se nicht. Egal, wie ich es ver­sucht habe, immer gab es eine Feh­ler­mel­dung: „Micro­soft Visu­al C++ Run­time Libra­ry … Asser­ti­on fai­led“, und zwar in einer Datei „t2k/t2kstrm.c“, Zei­le 132. Feh­ler­haft sei „pos = t-> max­pos“. Wie­der­ho­len, Igno­rie­ren oder Abbrechen?

F4 ist ein Java-Pro­gramm. Bis ich her­aus­ge­kriegt hat­te, dass die Feh­ler­mel­dung damit zu tun hat­te, dau­er­te aber noch ein bißchen.

Zunächst ein­mal habe ich bei Thors­ten Dres­ing von audiotranskription.de um Rat gefragt – der kann­te das Pro­blem nicht und mein­te, ich sol­le halt gleich die Beta-Ver­si­on 4.0 neh­men. Die lief tat­säch­lich, mich wurm­te das aber dann doch – und die Ver­si­on 3 fand ich auch prak­ti­scher und schnel­ler als die 4.0.

Also habe ich heu­te abend noch­mal ein paar Stun­den damit zuge­bracht, eine Lösung zu finden.

Ers­te Hin­wei­se lie­fer­te Goog­le: z.B. hier oder auch im Java­fo­rum von SUN. Damit wur­de schnell klar, was wahr­schein­lich das Pro­blem ist – das über­haupt nichts mit F4 zu tun hat, son­dern ein Pro­blem aller (auch der neus­ten) Java-Run­time-Ver­si­on unter Win­dows (XP) ist: kor­rup­te True­type-Fonts brin­gen ein Unter­pro­gramm, das alle vor­han­de­nen Fonts kata­lo­gi­siert, zum Absturz.

Lösung laut Netz: alle Fonts von Hand durch­ge­hen, kor­rup­te Fonts löschen. Habe ich gemacht, habe auch ein Dut­zend Fonts gefun­den, die von der Font-Anzei­ge nur als leer ange­zeigt wur­den (und ganz anders hät­ten aus­se­hen sol­len), und die­se gelöscht. Half auch nichts. Was letzt­lich gehol­fen hat, war folgendes:

Ach­tung: auf eige­ne Gefahr aus­pro­bie­ren! Evtl. bie­tet es sich an, eine Win­dows/Of­fice-Instal­la­ti­ons-CD zur Hand zu haben, da eini­ge Fonts sich selbst neu instal­lie­ren wollen!

1. in der DOS-Shell ("cmd" bei Ausführen angeben) als Administrator nach c:\windows\ wechseln
2. Ein neues Verzeichnis "ttfonts" anlegen ("mkdir ttfonts").
3. Alle Truetype-Fonts aus dem Fonts-Verzeichnis dahin kopieren ("copy fonts\*.ttf ttfonts\").
4. Alle Truetype-Fonts löschen ("del fonts\*.ttf" - gibt ein paar Fehlermeldungen bei Systemfonts).
5. Testen, ob das das Problem gelöst hat, ob also F4 (bzw. irgendeine andere javaw-Datei) ohne Fehler startet.
6.a Font-Cache löschen (siehe Kommentar von Oliver unten)
6.b Im Font-Viewer von Windows auf die Ansicht "Liste" gehen und alle mit 0 Byte angezeigten ttf-Dateien löschen (die sind eigentlich schon gelöscht, Windows glaubt das aber nicht).
7. Im Font-Viewer über "Fonts installieren" aus dem Verzeicnis c:\windows\ttfonts von Hand all diejenigen Fonts neu installieren, die wirklich gebraucht werden (Nebeneffekt: Fonts, die nicht wirklich gebraucht werden, müllen den Fonts-Ordner nicht mehr zu).
8. Rechner neu starten.

 
Ganz schön viel Auf­wand (ich habe unge­fähr 700 Datei­en in c:\windows\fonts …), aber mit etwas Glück war das nicht nur für F4, son­dern auch für ande­re Pro­gram­me ein Pro­blem – und hilft also auch generell. 

War­um blog­ge ich das? Um zur Auf­find­bar­keit die­ses häu­fi­gen, aber doch exo­ti­schen Pro­blems beizutragen.

P.S.: Jetzt habe ich ein Pro­blem mit Excel; ich befürch­te, eine Neben­wir­kung die­ses Vor­ge­hens. Mit Tran­skri­bie­ren wird das heu­te abend nichts mehr.

Nach­trag: Ganz so ein­fach ist das alles wohl auch nicht – Fire­fox z.B. meint jetzt, auch die gelösch­ten Fonts noch zu ken­nen – Excel macht, wie bereits erwähnt, beim Öff­nen einer bestimm­ten Datei Pro­ble­me – und an eini­gen Stel­len machen die feh­len­den Fonts Pro­ble­me. Dafür läuft F4. Hmm.

Nach­trag 2: Viel­leicht ist die­se Lis­te der Win­dows-Sys­tem­fonts hilf­reich – ich schaue mal, dass die alle instal­liert sind, viel­leicht löst das ja mei­ne neu­en Probleme.

Nach­trag 3: Hmmm … war­um sehen Sys­tem­schrift­ar­ten wie Geor­gia und Ari­al Nar­row plötz­lich teil­wei­se „kor­rupt“ aus? Was ist da beim Kopie­ren schief gelau­fen? Stay tuned …

Nach­trag 4: Nach der eigent­lich nicht geplan­ten Neu­in­stal­la­ti­on eini­ger Fonts auf deren Eigen­in­itia­ti­ve von einer Sys­tem-CD hin und nach dem Löschen des Font­cache – was Oli­ver im Kom­men­tar sagt – scheint alles wie­der zu laufen.

4 Antworten auf „F4, Java und die Korruption (Nachtrag 4)“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert