This is jEdit as Mac OS X application bundle, based on current Java 7
from Oracle, instead of the dead an buried Java 6 from Apple. Current
7u40 even supports Retina displays.
The main application launcher is http://java.net/projects/appbundler
from Oracle, see its appbundler-1.0.jar (it contains an ant task to do
the bundling on some running Mac OS X system, but the directory layout
and Info.plist file can be created by other means as well, on any
The resulting directory layout of jEdit.app is as follows, based on
existing jEdit-5.1.0 for Mac OS X:
Contents/MacOS/JavaAppLauncher # main launcher from appbundler-1.0.jar
Contents/Info.plist # handwritten version based on ant output
Contents/Java/ # jedit.jar and all the rest (formerly Resources/Java/)
Contents/PlugIns/jdk/ # full jdk, or trimmed version produced by appbundler ant task
Contents/Resources/icon.icns # regular jEdit icon as before
Contents/Resources/file.icns # presently unused, no file types yet
The appbundler ant task takes a locally installed jdk as a starting
point to bundle a subset of it into the application. This is now the
official policy of Oracle and Apple. Note that plain jre does not
work here at the moment -- reasons unknown. For demonstration
purposes I've made Contents/PlugIns/jdk a symlink to some jdk found
locally on the system, but an official version should include a
self-contained copy of it.
Moreover, note that appbundler-1.0 does not handle file types yet.
There is a fork of the Oracle project here
https://bitbucket.org/infinitekind/appbundler that does that, apart
from other improvements, but I did not manage to make this work yet.
Further required changes on the jEdit side:
* Debug.ALTERNATIVE_DISPATCHER = false (always). Maybe even remove
that alternative key event dispatcher altogether. It is not
required in Java 6, and breaks Java 7.
* Brushing up the MacOSX plugin, maybe dismantling some old
workarounds. In fact, it would be preferable to get Mac OS X
application support directly into jedit.jar -- this works by
dynamic method invocation via "reflection", so jEdit will be
compilable and runnable on all platforms.