Recent versions of OS X don’t come with Java preinstalled, and I’d rather not even bother installing it, but there’s one Java-based app that I still rely on: BudgetCalendar.[^1] On my old Air, it was working fine in Yosemite, but on my new Macbook, no dice:
To view this web content, you need to install the Java Runtime Environment.
OK, that error message even includes a link to Oracle’s download page for JRE 8, so no problem right?
Don’t do that; there’s a reason Apple stopped bundling Java with OS X and wants you to use Oracle’s latest version instead.[^2]
More helpful was an ask Ask Different answer, which suggests installing the Java SDK.[^3] That’s definitely a better idea, but I’m not planning on doing any Java development, so I kept looking for another option.
In the BudgetCalendar app bundle, I found that it uses a shell script to start. That script in turn uses the
java command, which at this point does nothing but open the popup that prompts you to install Java.
But shouldn’t the JRE installation include
java? Yes, Oracle’s documentation reveals the loction:
OK, so all that’s necessary is to replace the placeholder
java[^4] with the real thing:
sudo mv /usr/bin/java /usr/bin/java-1 sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java
And it works! This might break with subsequent OS X updates, but it seems like a fine solution to me, at least until the BudgetCalendar developers provide a fix.
[^1]: Actually 2, but I’m not counting CrashPlan as they include Java as part of the CrashPlan app.
[^2]: Hint: it has to do with security.
[^3]: I later found that the developers of BudgetCalendar suggest the same fix when I went to contact them about this issue.
[^4]: Actually, a symlink.