Historical libextra classpath patch
libextra/ used to be a temporary installer-side classpath patch. It vendored
log4j-core-2.23.1.jar and bundled it into .DeepPhe/lib.
It is no longer part of the installer. The Java 26 path instead removes the
log4j-1.2-api-* bridge jar from the installed NLP lib/ directory, while
leaving the legacy log4j-1.2.17.jar needed by cTAKES GUI classes.
Why It Exists
Older DeepPhe-NLP.zip builds shipped the Log4j API and compatibility jars, but
not the Log4j 2 implementation jar:
| Jar | Role |
|---|---|
log4j-api-2.23.1.jar | Log4j 2 API. |
log4j-1.2-api-2.23.1.jar | Log4j 1.x to 2.x bridge. |
log4j-1.2.17.jar | Legacy Log4j 1.x jar. |
log4j-core-2.23.1.jar | Missing Log4j 2 implementation. |
Without log4j-core, the desktop launcher could fail during class
initialization with NoClassDefFoundError for Log4j core classes.
Current installer behavior
DeepPhe-and-Launcher.install4j does not include ./libextra. During
configuration it deletes log4j-1.2-api-* from .DeepPhe/lib, because that
bridge conflicts with the legacy Log4j 1.x classes used by HSQLDB/cTAKES on
Java 26.
Keep this page only as history for maintainers who remember the old workaround.